1import os
2import sys
3import random
4import unittest
5
6sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
7import base_test
8
9repo_root = os.path.abspath(os.path.join(__file__, "../../.."))
10sys.path.insert(1, os.path.join(repo_root, "tools", "webdriver"))
11from webdriver import exceptions
12
13
14class WindowHandleTest(base_test.WebDriverBaseTest):
15    def setUp(self):
16        self.driver.get(self.webserver.where_is("command_contexts/res/first-page.html"))
17
18    def test_window_handle_is_not_current(self):
19        handle = self.driver.get_window_handle()
20        self.assertNotEquals(handle, "current")
21
22    def test_window_handles_are_unique(self):
23        number_of_windows = 20
24        new_window_button = self.driver.find_element_by_id("open_new_window")
25        for i in range(0, number_of_windows):
26            new_window_button.click()
27
28        handles = self.driver.get_window_handles()
29        if len(handles) > len(set(handles)):
30            self.fail('At least one window handle was repeated')
31
32if __name__ == "__main__":
33    unittest.main()
34