By the way, Stefano, can you send me the error output you get on your computer as this does not occur on my Desktop. The strange thing for me is that "self.bottomEdgePageLoaded.wait_for(True)" (line 112 of __init__.py) should work but looks like it's not for you.
Diff comments: > === modified file 'po/com.ubuntu.docviewer.pot' > --- po/com.ubuntu.docviewer.pot 2015-04-27 16:02:40 +0000 > +++ po/com.ubuntu.docviewer.pot 2015-05-02 10:27:39 +0000 > @@ -8,7 +8,7 @@ > msgstr "" > "Project-Id-Version: \n" > "Report-Msgid-Bugs-To: \n" > -"POT-Creation-Date: 2015-04-27 18:02+0200\n" > +"POT-Creation-Date: 2015-05-01 16:54+0200\n" > "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" > "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" > "Language-Team: LANGUAGE <l...@li.org>\n" > @@ -34,7 +34,7 @@ > > #: ../src/app/docviewer-application.cpp:164 > #: ../src/app/qml/documentPage/DocumentPage.qml:25 > -#: > /home/stefano/tmp/build-ch-imported-documents-name-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1 > +#: > /home/letozaf/autopilot-tests/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1 > msgid "Document Viewer" > msgstr "" > > @@ -257,12 +257,12 @@ > msgstr "" > > #. TRANSLATORS: "Contents" refers to the "Table of Contents" of a PDF > document. > -#: ../src/app/qml/pdfView/PdfContentsPage.qml:26 > +#: ../src/app/qml/pdfView/PdfContentsPage.qml:31 > #: ../src/app/qml/pdfView/PdfView.qml:37 > msgid "Contents" > msgstr "" > > -#: ../src/app/qml/pdfView/PdfContentsPage.qml:32 > +#: ../src/app/qml/pdfView/PdfContentsPage.qml:37 > msgid "Hide table of contents" > msgstr "" > > @@ -319,6 +319,6 @@ > msgid "Open" > msgstr "" > > -#: > /home/stefano/tmp/build-ch-imported-documents-name-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2 > +#: > /home/letozaf/autopilot-tests/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2 > msgid "documents;viewer;pdf;reader;" > msgstr "" > > === modified file 'src/app/qml/pdfView/PdfContentsPage.qml' > --- src/app/qml/pdfView/PdfContentsPage.qml 2015-04-16 12:58:29 +0000 > +++ src/app/qml/pdfView/PdfContentsPage.qml 2015-05-02 10:27:39 +0000 > @@ -22,6 +22,11 @@ > import "../upstreamComponents" > > Page { > + id: pdfContents > + objectName: "pdfcontents" > + > + property string testProperty: "for page name issue" I left a comment in PdfContentsPage.qml so we will remember to remove the property when the bug is fixed > + > // TRANSLATORS: "Contents" refers to the "Table of Contents" of a PDF > document. > title: i18n.tr("Contents") > > @@ -57,6 +62,7 @@ > > ListView { > id: view > + objectName: "view" > anchors.fill: parent > clip: true > > @@ -64,6 +70,7 @@ > > delegate: ListItemWithActions { > id: delegate > + objectName: "delegate" + index > > width: parent.width > height: (model.level === 0) ? units.gu(7) : units.gu(6) > @@ -73,6 +80,7 @@ > : > Theme.palette.normal.background > > AbstractButton { > + objectName: "abstractbutton" > anchors.fill: parent > > onClicked: { > @@ -91,6 +99,7 @@ > spacing: units.gu(1) > > Label { > + objectName: "content" > Layout.fillWidth: true > > text: model.title > @@ -102,6 +111,7 @@ > } > > Label { > + objectName: "pageindex" > text: model.pageIndex + 1 > font.weight: model.level == 0 ? Font.DemiBold : > Font.Normal > color: (model.level === 0) ? UbuntuColors.midAubergine > > === modified file 'tests/autopilot/ubuntu_docviewer_app/__init__.py' > --- tests/autopilot/ubuntu_docviewer_app/__init__.py 2015-04-14 15:37:06 > +0000 > +++ tests/autopilot/ubuntu_docviewer_app/__init__.py 2015-05-02 10:27:39 > +0000 > @@ -20,6 +20,7 @@ > from autopilot import logging as autopilot_logging > logger = logging.getLogger(__name__) > > +from autopilot.introspection import dbus > import ubuntuuitoolkit > > > @@ -58,10 +59,20 @@ > return self.wait_select_single(PdfView) > > @autopilot_logging.log_action(logger.info) > + def open_PdfContentsPage(self): > + """Open the PdfContents Page. > + > + :return the PdfContents Page > + > + """ > + return self.wait_select_single(PdfContentsPage) > + > + @autopilot_logging.log_action(logger.info) > def get_PdfViewGotoDialog(self): > """Return a dialog emulator""" > return self.wait_select_single(objectName="PdfViewGotoDialog") > > + @autopilot_logging.log_action(logger.info) > def go_to_page_from_dialog(self, page_no): > """ Go to page from get_PfdViewGotoDialog """ > textfield = self.wait_select_single( > @@ -70,6 +81,12 @@ > go_button = self.wait_select_single("Button", objectName="GOButton") > self.pointing_device.click_object(go_button) > > + @autopilot_logging.log_action(logger.info) > + def click_go_to_page_button(self): > + """Click the go_to_page header button.""" > + header = self.get_header() > + header.click_action_button('gotopage') > + > > class Page(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase): > > @@ -82,15 +99,88 @@ > self.main_view = self.get_root_instance().select_single(MainView) > > > -class PdfView(Page): > +class PageWithBottomEdge(MainView): > + """ > + An emulator class that makes it easy to interact with the bottom edge > + swipe page > + """ > + def __init__(self, *args): > + super(PageWithBottomEdge, self).__init__(*args) > + > + def reveal_bottom_edge_page(self): > + """Bring the bottom edge page to the screen""" > + self.bottomEdgePageLoaded.wait_for(True) > + try: > + action_item = self.wait_select_single(objectName='bottomEdgeTip') > + action_item.visible.wait_for(True) > + start_x = (action_item.globalRect.x + > + (action_item.globalRect.width * 0.5)) > + start_y = (action_item.globalRect.y + > + (action_item.height * 0.5)) > + stop_y = start_y - (self.height * 0.7) > + self.pointing_device.drag(start_x, start_y, > + start_x, stop_y, rate=2) > + self.isReady.wait_for(True) > + except dbus.StateNotFoundError: > + logger.error('BottomEdge element not found.') > + raise > + > + > +class PdfView(PageWithBottomEdge): > """Autopilot helper for PdfView page.""" > > @autopilot_logging.log_action(logger.info) > def toggle_header_visibility(self): > """Show/hide page header by clicking on the center of main view""" > - self.pointing_device.click_object(self.main_view) > - > - def click_go_to_page_button(self): > - """Click the go_to_page header button.""" > - header = self.main_view.get_header() > - header.click_action_button('gotopage') > + self.pointing_device.click_object(self) > + > + def get_currentpage_number(self): > + """return the value of the currentPage property""" > + logger.warn(self.currentPage) > + return self.currentPage > + > + > +class PdfContentsPage(Page): > + """Autopilot helper for PdfContents page.""" > + > + @autopilot_logging.log_action(logger.info) > + def get_content_and_line_pageindex(self, labelText): > + content_line, page_no = self._get_listitem(labelText) > + return content_line, page_no > + > + def _get_listitem(self, labelText): > + list_items_count = self.select_single( > + "QQuickListView", objectName="view").count > + > + index = 0 > + for index in range(list_items_count): > + while True: > + try: > + list_item = self.select_single( > + "ListItemWithActions", objectName="delegate{}". > + format(index)) > + break > + except dbus.StateNotFoundError: > + self.scroll_pdfcontentspage() > + label = list_item.select_single("Label", objectName="content") > + if label.text == labelText: > + page_no = list_item.select_single( > + "Label", objectName="pageindex").text > + return label, page_no > + break > + > + @autopilot_logging.log_action(logger.info) > + def click_content_line(self, content_line): > + self.pointing_device.click_object(content_line) > + > + @autopilot_logging.log_action(logger.info) > + def scroll_pdfcontentspage(self): > + action_item = self.select_single("QQuickListView") > + start_x = (self.globalRect.x + > + (self.globalRect.width * 0.5)) > + start_y = (self.globalRect.y + > + (self.height * 0.7)) > + stop_y = start_y - (self.height * 0.8) > + self.pointing_device.drag(start_x, start_y, > + start_x, stop_y, rate=2) > + action_item.moving.wait_for(False) > > === added file 'tests/autopilot/ubuntu_docviewer_app/files/serverguide.pdf' > Binary files tests/autopilot/ubuntu_docviewer_app/files/serverguide.pdf > 1970-01-01 00:00:00 +0000 and > tests/autopilot/ubuntu_docviewer_app/files/serverguide.pdf 2015-05-02 > 10:27:39 +0000 differ > === modified file > 'tests/autopilot/ubuntu_docviewer_app/tests/test_docviewer.py' > --- tests/autopilot/ubuntu_docviewer_app/tests/test_docviewer.py > 2015-04-14 15:37:06 +0000 > +++ tests/autopilot/ubuntu_docviewer_app/tests/test_docviewer.py > 2015-05-02 10:27:39 +0000 > @@ -60,7 +60,7 @@ > self.launch_app() > pdf = self.app.main_view.open_PdfView() > pdf.toggle_header_visibility() > - pdf.click_go_to_page_button() > + self.app.main_view.click_go_to_page_button() > self.go_to_page_no(page_no) > > self.assertThat( > > === added file 'tests/autopilot/ubuntu_docviewer_app/tests/test_toc.py' > --- tests/autopilot/ubuntu_docviewer_app/tests/test_toc.py 1970-01-01 > 00:00:00 +0000 > +++ tests/autopilot/ubuntu_docviewer_app/tests/test_toc.py 2015-05-02 > 10:27:39 +0000 > @@ -0,0 +1,49 @@ > +# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*- > +# Copyright 2013 Canonical > +# > +# This program is free software: you can redistribute it and/or modify it > +# under the terms of the GNU General Public License version 3, as published > +# by the Free Software Foundation. > + > +"""Docviewer app autopilot tests.""" > + > +from ubuntu_docviewer_app.tests import DocviewerAppTestCase > + > +import logging > +logger = logging.getLogger(__name__) > + > + > +class TestMainWindow(DocviewerAppTestCase): > + > + """Tests the TOC features""" > + scenarios = [ > + ('Chapter 1', > + {'content_label': 'Chapter 1. Introduction' > + }), > + > + ('Chapter 3', > + {'content_label': 'Chapter 3. Package Management', > + }) > + ] > + > + def setUp(self): > + super(TestMainWindow, self).setUp() > + > + def test_go_to_chapters_in_toc(self): > + """" Testing going to chapters from Table Of Contents """ > + self.filepath = 'ubuntu_docviewer_app/files/serverguide.pdf' > + > + self.launch_app() > + pdf = self.app.main_view.open_PdfView() > + pdf.reveal_bottom_edge_page() > + contents_page = self.app.main_view.open_PdfContentsPage() > + content_line, page_no = contents_page.\ > + get_content_and_line_pageindex(self.content_label) > + logger.warn(page_no) > + contents_page.click_content_line(content_line) > + > + word_in_currentpage = pdf.get_currentpage_number().split() > + pdfview_currentpage = word_in_currentpage[1] > + logger.warn(pdfview_currentpage) > + > + self.assertEquals(pdfview_currentpage, page_no) > -- https://code.launchpad.net/~carla-sella/ubuntu-docviewer-app/test-toc/+merge/258082 Your team Ubuntu Document Viewer Developers is subscribed to branch lp:ubuntu-docviewer-app. -- Mailing list: https://launchpad.net/~ubuntu-touch-coreapps-reviewers Post to : ubuntu-touch-coreapps-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~ubuntu-touch-coreapps-reviewers More help : https://help.launchpad.net/ListHelp