20 """Tests for the Dash autopilot custom proxy objects. 22 The autopilot custom proxy objects are helpers for tests that check a user 23 journey that involves the dash. The code for some of those tests will not be 24 inside this branch, but in projects that depend on unity or that test the 25 whole system integration. So, we need to test the helpers in order to make 26 sure that we don't break them for those external projects. 30 from ubuntuuitoolkit
import ubuntu_scenarios
32 from unity8
import process_helpers
34 from unity8
import dash
as dash_helpers
37 class MainWindowTestCase(tests.UnityTestCase):
39 scenarios = ubuntu_scenarios.get_device_simulation_scenarios()
44 process_helpers.unlock_unity()
47 class DashHelperTestCase(tests.DashBaseTestCase):
49 def test_search(self):
50 self.dash.enter_search_query(
'Test', self.keyboard)
51 text_field = self.dash.get_search_text_field()
52 self.assertEqual(text_field.text,
'Test')
54 def test_open_scope_to_the_right(self):
55 leftmost_scope = self._get_leftmost_scope_id()
56 self.dash.open_scope(leftmost_scope)
58 scope_id = self._get_rightmost_scope_id()
59 scope = self.dash.open_scope(scope_id)
60 self._assert_scope_is_opened(scope, scope_id)
62 def _assert_scope_is_opened(self, scope, scope_id):
63 self.assertTrue(scope.isCurrent)
64 scope_loader = scope.get_parent()
65 self.assertEqual(scope_loader.scopeId, scope_id)
67 def _get_leftmost_scope_id(self):
68 scope_loaders = self._get_scope_loaders()
69 leftmost_scope_loader = scope_loaders[0]
70 for loader
in scope_loaders[1:]:
71 if loader.globalRect.x < leftmost_scope_loader.globalRect.x:
72 leftmost_scope_loader = loader
73 return leftmost_scope_loader.scopeId
75 def _get_scope_loaders(self):
76 item = self.dash.dash_content_list.get_children_by_type(
78 return item.get_children_by_type(
'QQuickLoader')
80 def _get_rightmost_scope_id(self):
81 scope_loaders = self._get_scope_loaders()
82 rightmost_scope_loader = scope_loaders[0]
83 for loader
in scope_loaders[1:]:
84 if loader.globalRect.x > rightmost_scope_loader.globalRect.x:
85 rightmost_scope_loader = loader
86 return rightmost_scope_loader.scopeId
88 def test_open_scope_to_the_left(self):
89 rightmost_scope = self._get_rightmost_scope_id()
90 self.dash.open_scope(rightmost_scope)
92 scope_id = self._get_leftmost_scope_id()
93 scope = self.dash.open_scope(scope_id)
94 self._assert_scope_is_opened(scope, scope_id)
96 def test_open_generic_scope(self):
97 scope_id =
'musicaggregator' 98 scope = self.dash.open_scope(scope_id)
99 self._assert_scope_is_opened(scope, scope_id)
100 self.assertIsInstance(scope, dash_helpers.GenericScopeView)
103 class GenericScopeViewHelperTestCase(tests.DashBaseTestCase):
107 self.useFixture(fixture_setup.FakeScopes())
109 self.generic_scope = self.dash.open_scope(
'MockScope1')
111 def test_open_preview(self):
112 preview = self.generic_scope.open_preview(
'0',
'Title.0.0')
113 self.assertIsInstance(preview, dash_helpers.Preview)
115 def test_open_preview_of_non_visible_item(self):
116 """Open an item that requires swiping to make it visible.""" 117 preview = self.generic_scope.open_preview(
'2',
'Title.2.0')
118 self.assertIsInstance(preview, dash_helpers.Preview)