File: layouticonset.cpp

package info (click to toggle)
polybar 3.7.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,108 kB
  • sloc: cpp: 30,424; python: 3,750; sh: 284; makefile: 83
file content (76 lines) | stat: -rw-r--r-- 4,301 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include "drawtypes/layouticonset.hpp"

#include "common/test.hpp"

using namespace std;
using namespace polybar;
using namespace polybar::drawtypes;

TEST(LayoutIconSet, get) {
  layouticonset_t layout_icons = make_shared<layouticonset>(make_shared<label>("default-icon"));

  EXPECT_EQ("default-icon", layout_icons->get("", "")->get());
  EXPECT_EQ("default-icon", layout_icons->get("any_layout", "")->get());
  EXPECT_EQ("default-icon", layout_icons->get("", "any_variant")->get());
  EXPECT_EQ("default-icon", layout_icons->get("any_layout", "any_variant")->get());

  // us;icon => layout 'us' with any variant
  EXPECT_TRUE(layout_icons->add("us", layouticonset::VARIANT_ANY, make_shared<label>("us--icon")));

  EXPECT_EQ("default-icon", layout_icons->get("", "")->get());
  EXPECT_EQ("default-icon", layout_icons->get("any_layout", "")->get());
  EXPECT_EQ("default-icon", layout_icons->get("", "any_variant")->get());
  EXPECT_EQ("default-icon", layout_icons->get("any_layout", "any_variant")->get());
  EXPECT_EQ("default-icon", layout_icons->get("Us", "")->get());

  EXPECT_EQ("us--icon", layout_icons->get("us", "")->get());
  EXPECT_EQ("us--icon", layout_icons->get("us", "undefined_variant")->get());

  // us;colemak;icon => layout 'us' with 'colemak' variant
  EXPECT_TRUE(layout_icons->add("us", "colemak", make_shared<label>("us-colemak-icon")));

  EXPECT_EQ("us--icon", layout_icons->get("us", "undefined_variant")->get());
  EXPECT_EQ("us-colemak-icon", layout_icons->get("us", "colemak")->get());
  EXPECT_EQ("us-colemak-icon", layout_icons->get("us", "COLEMAK")->get());
  EXPECT_EQ("us-colemak-icon", layout_icons->get("us", "a variant containing CoLeMaK in its description")->get());

  // us;;icon => layout 'us' with no variant
  EXPECT_TRUE(layout_icons->add("us", "", make_shared<label>("us-no_variant-icon")));

  EXPECT_EQ("us-no_variant-icon", layout_icons->get("us", "")->get());
  EXPECT_EQ("us--icon", layout_icons->get("us", "undefined_variant")->get());
  EXPECT_EQ("us-colemak-icon", layout_icons->get("us", "colemak")->get());
  EXPECT_EQ("us-colemak-icon", layout_icons->get("us", "COLEMAK")->get());
  EXPECT_EQ("us-colemak-icon", layout_icons->get("us", "a variant containing CoLeMaK in its description")->get());

  // _;dvorak;icon => any layout with 'dvorak' variant
  EXPECT_TRUE(layout_icons->add(layouticonset::VARIANT_ANY, "dvorak", make_shared<label>("any_layout-dvorak-icon")));
  EXPECT_EQ("any_layout-dvorak-icon", layout_icons->get("fr", "dvorak")->get());
  EXPECT_EQ("any_layout-dvorak-icon", layout_icons->get("fr", "dVORAk")->get());
  EXPECT_EQ("us--icon", layout_icons->get("us", "dvorak")->get());

  // us;dvorak;icon => layout 'us' with 'dvorak' variant
  EXPECT_TRUE(layout_icons->add("us", "dvorak", make_shared<label>("us-dvorak-icon")));
  EXPECT_EQ("any_layout-dvorak-icon", layout_icons->get("fr", "dvorak")->get());
  EXPECT_EQ("us-dvorak-icon", layout_icons->get("us", "dvorak")->get());

  // _;;icon => any layout with no variant
  EXPECT_TRUE(layout_icons->add(layouticonset::VARIANT_ANY, "", make_shared<label>("any_layout-no_variant-icon")));
  EXPECT_EQ("any_layout-no_variant-icon", layout_icons->get("fr", "")->get());
  EXPECT_EQ("us-no_variant-icon", layout_icons->get("us", "")->get());

  EXPECT_TRUE(layout_icons->add("us", "variant2", make_shared<label>("us-variant2-icon")));
  EXPECT_EQ("us-colemak-icon", layout_icons->get("us", "a variant containing CoLeMaK & variant2 in its description")->get());

  EXPECT_TRUE(layout_icons->add(layouticonset::VARIANT_ANY, "variant2", make_shared<label>("any_layout-variant2-icon")));
  EXPECT_EQ("any_layout-dvorak-icon", layout_icons->get("some layout", "a variant containing dvorak & variant2 in its description")->get());

  // us;_;icon => layout 'us' with any variant
  layouticonset_t layout_icons2 = make_shared<layouticonset>(make_shared<label>("default-icon"));
  EXPECT_TRUE(layout_icons2->add("us", "_", make_shared<label>("us-any_variant-icon")));
  EXPECT_EQ("us-any_variant-icon", layout_icons2->get("us", "")->get());
  EXPECT_EQ("us-any_variant-icon", layout_icons2->get("us", "whatever variant")->get());

  EXPECT_FALSE(layout_icons->add(
      layouticonset::VARIANT_ANY, layouticonset::VARIANT_ANY, make_shared<label>("any_layout-no_variant-icon")));
}