1
# -*- coding: utf-8 -*-
3
# Copyright 2013 Canonical
5
# This program is free software: you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License version 3, as published
7
# by the Free Software Foundation.
9
from __future__ import absolute_import
11
from testtools.matchers import Equals
12
from autopilot.matchers import Eventually
14
from webbrowser_app.tests import StartOpenLocalPageTestCaseBase
17
LOREMIPSUM = "<p>Lorem ipsum dolor sit amet.</p>"
20
class TestBackForward(StartOpenLocalPageTestCaseBase):
22
"""Tests the back and forward functionality."""
24
def click_back_button(self):
25
self.ensure_chrome_is_hidden()
27
back_button = self.main_window.get_back_button()
28
self.pointing_device.move_to_object(back_button)
29
self.pointing_device.click()
31
def test_homepage_no_history(self):
32
back_button = self.main_window.get_back_button()
33
self.assertThat(back_button.enabled, Equals(False))
34
forward_button = self.main_window.get_forward_button()
35
self.assertThat(forward_button.enabled, Equals(False))
37
def test_opening_new_page_enables_back_button(self):
38
back_button = self.main_window.get_back_button()
39
self.assertThat(back_button.enabled, Equals(False))
40
url = self.make_html_page("page 2", LOREMIPSUM)
42
self.assert_page_eventually_loaded(url)
43
self.assertThat(back_button.enabled, Eventually(Equals(True)))
45
def test_navigating_back_enables_forward_button(self):
46
url = self.make_html_page("page 2", LOREMIPSUM)
48
self.assert_page_eventually_loaded(url)
49
forward_button = self.main_window.get_forward_button()
50
self.assertThat(forward_button.enabled, Equals(False))
51
self.click_back_button()
52
self.assert_home_page_eventually_loaded()
53
self.assertThat(forward_button.enabled, Eventually(Equals(True)))