5
"launchpad.net/go-unityscopes/v1"
8
func (s *S) TestPreviewWidget(c *C) {
9
widget := scopes.NewPreviewWidget("widget_id", "widget_type")
10
c.Check(widget.Id(), Equals, "widget_id")
11
c.Check(widget.WidgetType(), Equals, "widget_type")
13
_, ok := widget["attr_id"]
14
c.Check(ok, Equals, false)
15
widget.AddAttributeValue("attr_id", "attr_value")
17
value, ok := widget["attr_id"]
18
c.Check(ok, Equals, true)
19
c.Check(value, Equals, "attr_value")
22
widget.AddAttributeValue("attr_slice", []string{"test1", "test2", "test3"})
23
value, ok = widget["attr_slice"]
24
c.Check(ok, Equals, true)
25
c.Check(value, DeepEquals, []string{"test1", "test2", "test3"})
29
_, ok = widget["components"]
30
c.Check(ok, Equals, false)
31
widget.AddAttributeMapping("map_key", "mapping_value")
33
value, ok = widget["components"]
34
c.Check(ok, Equals, true)
36
components := value.(map[string]interface{})
38
_, ok = components["map_key_error"]
39
c.Check(ok, Equals, false)
41
value, ok = components["map_key"]
42
c.Check(ok, Equals, true)
43
c.Check(value, Equals, "mapping_value")
46
widget.AddAttributeMapping("map_key_2", "mapping_value_2")
47
value, ok = widget["components"]
48
c.Check(ok, Equals, true)
49
components = value.(map[string]interface{})
51
value, ok = components["map_key"]
52
c.Check(ok, Equals, true)
53
c.Check(value, Equals, "mapping_value")
55
value, ok = components["map_key_2"]
56
c.Check(ok, Equals, true)
57
c.Check(value, Equals, "mapping_value_2")
60
func (s *S) TestPreviewWidgetAddWidgets(c *C) {
61
widget := scopes.NewPreviewWidget("widget_id", "widget_type")
62
c.Check(widget.Id(), Equals, "widget_id")
63
c.Check(widget.WidgetType(), Equals, "widget_type")
65
sub_widget_1 := scopes.NewPreviewWidget("widget1", "expandable")
67
// check panic error when adding widget to non expandable
68
c.Assert(func() { widget.AddWidget(sub_widget_1) }, PanicMatches, "Can only add widgets to expandable type widgets")
70
// check it does not have subwidgets
71
_, ok := sub_widget_1["widgets"]
72
c.Check(ok, Equals, false)
74
sub_widget_11 := scopes.NewPreviewWidget("widget11", "audio")
75
sub_widget_12 := scopes.NewPreviewWidget("widget12", "video")
77
sub_widget_1.AddWidget(sub_widget_11)
78
// now it does have widgets
79
widgets, ok := sub_widget_1["widgets"]
80
c.Check(ok, Equals, true)
81
c.Check(widgets, DeepEquals, []scopes.PreviewWidget{sub_widget_11})
83
sub_widget_1.AddWidget(sub_widget_12)
84
widgets, ok = sub_widget_1["widgets"]
85
c.Check(ok, Equals, true)
86
c.Check(widgets, DeepEquals, []scopes.PreviewWidget{sub_widget_11, sub_widget_12})
88
main_widget := scopes.NewPreviewWidget("main_widget_id", "expandable")
89
// check it does not have subwidgets
90
_, ok = main_widget["widgets"]
91
c.Check(ok, Equals, false)
93
main_widget.AddWidget(sub_widget_1)
94
widgets, ok = main_widget["widgets"]
95
c.Check(ok, Equals, true)
96
c.Check(widgets, DeepEquals, []scopes.PreviewWidget{sub_widget_1})