test_chrome_window_close.py (3381B)
1 # This Source Code Form is subject to the terms of the Mozilla Public 2 # License, v. 2.0. If a copy of the MPL was not distributed with this 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 4 5 import os 6 import sys 7 8 from marionette_harness import MarionetteTestCase, WindowManagerMixin 9 10 # add this directory to the path 11 sys.path.append(os.path.dirname(__file__)) 12 13 from chrome_handler_mixin import ChromeHandlerMixin 14 15 16 class TestCloseWindow(ChromeHandlerMixin, WindowManagerMixin, MarionetteTestCase): 17 def setUp(self): 18 super(TestCloseWindow, self).setUp() 19 20 self.marionette.set_context("chrome") 21 22 def tearDown(self): 23 self.close_all_windows() 24 self.close_all_tabs() 25 26 super(TestCloseWindow, self).tearDown() 27 28 def test_close_chrome_window_for_browser_window(self): 29 new_window = self.open_window() 30 self.marionette.switch_to_window(new_window) 31 32 self.assertNotIn(new_window, self.marionette.window_handles) 33 chrome_window_handles = self.marionette.close_chrome_window() 34 self.assertNotIn(new_window, chrome_window_handles) 35 self.assertListEqual(self.start_windows, chrome_window_handles) 36 self.assertNotIn(new_window, self.marionette.window_handles) 37 38 def test_close_chrome_window_for_non_browser_window(self): 39 win = self.open_chrome_window(self.chrome_base_url + "test.xhtml") 40 self.marionette.switch_to_window(win) 41 42 self.assertIn(win, self.marionette.chrome_window_handles) 43 self.assertNotIn(win, self.marionette.window_handles) 44 chrome_window_handles = self.marionette.close_chrome_window() 45 self.assertNotIn(win, chrome_window_handles) 46 self.assertListEqual(self.start_windows, chrome_window_handles) 47 self.assertNotIn(win, self.marionette.chrome_window_handles) 48 49 def test_close_chrome_window_for_last_open_window(self): 50 self.close_all_windows() 51 52 self.assertListEqual([], self.marionette.close_chrome_window()) 53 self.assertListEqual([self.start_tab], self.marionette.window_handles) 54 self.assertListEqual([self.start_window], self.marionette.chrome_window_handles) 55 self.assertIsNotNone(self.marionette.session) 56 57 def test_close_window_for_browser_tab(self): 58 new_tab = self.open_tab() 59 self.marionette.switch_to_window(new_tab) 60 61 window_handles = self.marionette.close() 62 self.assertNotIn(new_tab, window_handles) 63 self.assertListEqual(self.start_tabs, window_handles) 64 65 def test_close_window_for_browser_window_with_single_tab(self): 66 new_window = self.open_window() 67 self.marionette.switch_to_window(new_window) 68 69 self.assertEqual(len(self.start_tabs) + 1, len(self.marionette.window_handles)) 70 window_handles = self.marionette.close() 71 self.assertNotIn(new_window, window_handles) 72 self.assertListEqual(self.start_tabs, window_handles) 73 self.assertListEqual(self.start_windows, self.marionette.chrome_window_handles) 74 75 def test_close_window_for_last_open_tab(self): 76 self.close_all_tabs() 77 78 self.assertListEqual([], self.marionette.close()) 79 self.assertListEqual([self.start_tab], self.marionette.window_handles) 80 self.assertListEqual([self.start_window], self.marionette.chrome_window_handles) 81 self.assertIsNotNone(self.marionette.session)