on xenial help sign in
Merge trunk.
commitdc32dd939f2fe734c54d8ab4b1a79dc78672942b authorMichał Sawicz <michal.sawicz@canonical.com> dateFri 10 Jan 2014, 13:27 (13 years ago) parent9bb2f35eb43f0e
6 files changed+72−32
CODING+29 cmake/modules/autopilot.cmake+5−1 plugins/DashViews/horizontaljournal.cpp+2−2 qml/ScopeTool.qml+26−28 src/CMakeLists.txt+9−1 tests/autopilot/unity8/shell/tests/__init__.py+1
CODING+29
@@ -166,3 +166,32 @@ $ make tryDragHandle
166166NB: Manual test or interation doesn't make sense for all components or classes,
167167particularly the non-graphical ones. In such cases no "tryFoo" make target is
168168provided.
169+
170+NB: The tests expect the locale to be the C locale, they may fail if run
171+under a different locale, if you get failures others can not reproduce
172+prepend 'LC_ALL=C' to the 'make test' command
173+
174+Running autopilot tests
175+=======================
176+
177+Autopilot tests are run from the build directory (which will be ./builddir if you used
178+the ./build script).
179+
180+$ make autopilot
181+
182+If you want you can also run tests individually, for that you need to install first,
183+otherwise the tests will run on the system-installed version
184+
185+$ make install
186+
187+To see the list of existing autopilot tests you can do
188+
189+$ PYTHONPATH=../tests/autopilot autopilot list unity8
190+
191+And then run a single test with
192+
193+$ PYTHONPATH=../tests/autopilot autopilot run unity8.some.very.long.test.name
194+
195+or run them all with
196+
197+$ PYTHONPATH=../tests/autopilot autopilot run unity8
cmake/modules/autopilot.cmake+5−1
@@ -4,7 +4,11 @@ function(declare_autopilot_test TEST_NAME TEST_SUITE WORKING_DIR)
44 add_custom_target(autopilot-${TEST_NAME}
55 COMMAND LANG=C UBUNTU_ICON_THEME=ubuntu-mobile QML2_IMPORT_PATH=${SHELL_INSTALL_QML}/mocks autopilot run ${TEST_SUITE}
66 WORKING_DIRECTORY ${WORKING_DIR}
7− DEPENDS install
7+ DEPENDS fake_install
8+ )
9+
10+ add_custom_target(fake_install
11+ COMMAND cmake --build ${CMAKE_BINARY_DIR} --target install
812 )
913
1014 add_dependencies(autopilot autopilot-${TEST_NAME})
plugins/DashViews/horizontaljournal.cpp+2−2
@@ -172,7 +172,7 @@ void HorizontalJournal::cleanupExistingItems()
172172 releaseItem(item);
173173 m_visibleItems.clear();
174174 m_lastInRowIndexPosition.clear();
175− m_firstVisibleIndex = 0;
175+ m_firstVisibleIndex = -1;
176176}
177177
178178void HorizontalJournal::calculateImplicitHeight()
@@ -241,7 +241,7 @@ void HorizontalJournal::doRelayout()
241241 }
242242 m_visibleItems.clear();
243243 m_lastInRowIndexPosition.clear();
244− m_firstVisibleIndex = 0;
244+ m_firstVisibleIndex = -1;
245245 }
246246}
247247
qml/ScopeTool.qml+26−28
@@ -17,7 +17,9 @@
1717import QtQuick 2.0
1818import Ubuntu.Components 0.1
1919import Ubuntu.Components.Popups 0.1
20+import Utils 0.1
2021import Unity 0.2
22+import "Components"
2123import "Dash"
2224
2325Rectangle {
@@ -43,18 +45,28 @@ Rectangle {
4345 signal searchClicked
4446 }
4547
48+ SortFilterProxyModel {
49+ id: filteredScopes
50+ model: Scopes {
51+ id: scopes
52+ }
53+ dynamicSortFilter: true
4654
47− Scopes {
48− id: scopes
55+ filterRole: Scopes.RoleVisible
56+ filterRegExp: RegExp("^true$")
4957 }
5058
5159 Rectangle {
52− anchors.fill: scopeView
60+ anchors.fill: dashContent
5361 color: "#FCFCFC"
5462 }
5563
56− GenericScopeView {
57− id: scopeView
64+ DashContent {
65+ id: dashContent
66+
67+ model: filteredScopes
68+ searchHistory: SearchHistoryModel { }
69+ property Scope scope: scopes.get(currentIndex)
5870
5971 anchors {
6072 top: parent.top
@@ -62,8 +74,6 @@ Rectangle {
6274 left: parent.left
6375 right: controls.left
6476 }
65−
66− scope: scopes.loaded ? scopes.get(scopeSelector.selectedIndex) : undefined
6777 }
6878
6979 Rectangle {
@@ -76,6 +86,10 @@ Rectangle {
7686 right: parent.right
7787 }
7888
89+ MouseArea {
90+ anchors.fill: parent
91+ }
92+
7993 Column {
8094 anchors { fill: parent; margins: units.gu(1) }
8195 spacing: units.gu(1)
@@ -88,27 +102,11 @@ Rectangle {
88102 id: searchField
89103 anchors { left: parent.left; right: parent.right }
90104
91− onTextChanged: scopeView.scope.searchQuery = text
105+ onTextChanged: dashContent.scope.searchQuery = text
92106
93107 Connections {
94− target: scopeView.scope
95− onSearchQueryChanged: searchField.text = scopeView.scope.searchQuery
96− }
97− }
98−
99− Label {
100− text: "Scope selection"
101− height: units.gu(4)
102− verticalAlignment: Text.AlignBottom
103− }
104−
105− OptionSelector {
106− id: scopeSelector
107− anchors { left: parent.left; right: parent.right }
108−
109− model: scopes
110− delegate: OptionSelectorDelegate {
111− text: model.title
108+ target: dashContent.scope
109+ onSearchQueryChanged: searchField.text = dashContent.scope.searchQuery
112110 }
113111 }
114112
@@ -121,7 +119,7 @@ Rectangle {
121119 OptionSelector {
122120 id: categorySelector
123121 anchors { left: parent.left; right: parent.right }
124− model: scopeView.scope ? scopeView.scope.categories : null
122+ model: dashContent.scope ? dashContent.scope.categories : null
125123
126124 property Item selectedItem
127125
@@ -170,7 +168,7 @@ Rectangle {
170168 onCancelClicked: PopupUtils.close(sheet)
171169 onConfirmClicked: {
172170 PopupUtils.close(sheet);
173− scopeView.scope.categories.overrideCategoryJson(categorySelector.selectedItem.categoryId, categoryEditorArea.text);
171+ dashContent.scope.categories.overrideCategoryJson(categorySelector.selectedItem.categoryId, categoryEditorArea.text);
174172 }
175173 }
176174 }
src/CMakeLists.txt+9−1
@@ -5,7 +5,15 @@ include_directories(
55 ${UNITY-MIR_INCLUDE_DIRS}
66)
77
8−file(GLOB_RECURSE QML_FILES ${CMAKE_SOURCE_DIR}/qml/*)
8+file(GLOB_RECURSE QML_FILES
9+ ${CMAKE_SOURCE_DIR}/qml/*
10+ ${CMAKE_SOURCE_DIR}/tests/*.qml
11+ ${CMAKE_SOURCE_DIR}/tests/*.js
12+ ${CMAKE_SOURCE_DIR}/tests/*.jpg
13+ ${CMAKE_SOURCE_DIR}/tests/*.png
14+ ${CMAKE_SOURCE_DIR}/tests/*.sci
15+ ${CMAKE_SOURCE_DIR}/tests/*.svg
16+)
917
1018add_executable(${SHELL_APP}
1119 ApplicationArguments.h
tests/autopilot/unity8/shell/tests/__init__.py+1
@@ -147,6 +147,7 @@ class UnityTestCase(AutopilotTestCase):
147147 if model() != "Desktop":
148148 from autopilot.input import _uinput
149149 _uinput._touch_device = _uinput.create_touch_device()
150+ self.addCleanup(_uinput._touch_device.close)
150151 ####
151152
152153 self.touch = Touch.create()