def test_switch_to_and_focus(self): # force BaseWindow instance win1 = BaseWindow(lambda: self.marionette, self.browser.handle) # Open a new window (will be focused), and check states win2 = win1.open_window() # force BaseWindow instance win2 = BaseWindow(lambda: self.marionette, win2.handle) self.assertEquals(win2.handle, self.marionette.current_chrome_window_handle) self.assertEquals(win2.handle, self.windows.focused_chrome_window_handle) self.assertFalse(win1.focused) self.assertTrue(win2.focused) # Switch back to win1 without moving the focus, but focus separately win1.switch_to() self.assertEquals(win1.handle, self.marionette.current_chrome_window_handle) self.assertTrue(win2.focused) win1.focus() self.assertTrue(win1.focused) # Switch back to win2 by focusing it directly win2.focus() self.assertEquals(win2.handle, self.marionette.current_chrome_window_handle) self.assertEquals(win2.handle, self.windows.focused_chrome_window_handle) self.assertTrue(win2.focused) # Close win2, and check that it keeps active but looses focus win2.switch_to() win2.close() win1.switch_to()
def test_switch_to_and_focus(self): # force BaseWindow instance win1 = BaseWindow(self.marionette, self.browser.handle) # Open a new window (will be focused), and check states win2 = win1.open_window() # force BaseWindow instance win2 = BaseWindow(self.marionette, win2.handle) self.assertEquals(win2.handle, self.marionette.current_chrome_window_handle) self.assertEquals(win2.handle, self.puppeteer.windows.focused_chrome_window_handle) self.assertFalse(win1.focused) self.assertTrue(win2.focused) # Switch back to win1 without moving the focus, but focus separately win1.switch_to() self.assertEquals(win1.handle, self.marionette.current_chrome_window_handle) self.assertTrue(win2.focused) win1.focus() self.assertTrue(win1.focused) # Switch back to win2 by focusing it directly win2.focus() self.assertEquals(win2.handle, self.marionette.current_chrome_window_handle) self.assertEquals(win2.handle, self.puppeteer.windows.focused_chrome_window_handle) self.assertTrue(win2.focused) # Close win2, and check that it keeps active but looses focus win2.switch_to() win2.close() win1.switch_to()
def test_open_close(self): # force BaseWindow instance win1 = BaseWindow(self.marionette, self.browser.handle) # Open a new window (will be focused), and check states win2 = win1.open_window() # force BaseWindow instance win2 = BaseWindow(self.marionette, win2.handle) self.assertEquals(len(self.marionette.chrome_window_handles), 2) self.assertNotEquals(win1.handle, win2.handle) self.assertEquals(win2.handle, self.marionette.current_chrome_window_handle) win2.close() self.assertTrue(win2.closed) self.assertEquals(len(self.marionette.chrome_window_handles), 1) with self.assertRaises(NoSuchWindowException): self.marionette.current_chrome_window_handle Wait(self.marionette).until( lambda _: win1.focused) # catch the no focused window win1.focus() # Open and close a new window by a custom callback def opener(window): window.marionette.open(type="window") def closer(window): window.marionette.close() win2 = win1.open_window(callback=opener) # force BaseWindow instance win2 = BaseWindow(self.marionette, win2.handle) self.assertEquals(len(self.marionette.chrome_window_handles), 2) win2.close(callback=closer) win1.focus() # Check for an unexpected window class self.assertRaises(errors.UnexpectedWindowTypeError, win1.open_window, expected_window_class=BaseWindow) self.puppeteer.windows.close_all([win1])
def test_open_close(self): # force BaseWindow instance win1 = BaseWindow(self.marionette, self.browser.handle) # Open a new window (will be focused), and check states win2 = win1.open_window() # force BaseWindow instance win2 = BaseWindow(self.marionette, win2.handle) self.assertEquals(len(self.marionette.chrome_window_handles), 2) self.assertNotEquals(win1.handle, win2.handle) self.assertEquals(win2.handle, self.marionette.current_chrome_window_handle) win2.close() self.assertTrue(win2.closed) self.assertEquals(len(self.marionette.chrome_window_handles), 1) with self.assertRaises(NoSuchWindowException): self.marionette.current_chrome_window_handle Wait(self.marionette).until(lambda _: win1.focused) # catch the no focused window win1.focus() # Open and close a new window by a custom callback def opener(window): window.marionette.execute_script(""" window.open(); """) def closer(window): window.marionette.execute_script(""" window.close(); """) win2 = win1.open_window(callback=opener) # force BaseWindow instance win2 = BaseWindow(self.marionette, win2.handle) self.assertEquals(len(self.marionette.chrome_window_handles), 2) win2.close(callback=closer) win1.focus() # Check for an unexpected window class self.assertRaises(errors.UnexpectedWindowTypeError, win1.open_window, expected_window_class=BaseWindow) self.puppeteer.windows.close_all([win1])