def test_all_property_transfer(self): """ Test 3: Initial property transfer - make sure the viewer gets stuff set. """ self.init_webdriver() # Replicate the initial test self.test_init_html() # Now let's go further and modify the document self.webdriver.execute_script(""" broadcaster_iframe.contentWindow.change_some_css(); """) # Change text input value property new_input_value = "dfkjgopi" self.webdriver.switch_to_frame('broadcaster_iframe') input = self.webdriver.find_element_by_id('thetextinput') input.send_keys(new_input_value) self.webdriver.switch_to_default_content() diff = self.execute_script(""" var data = broadcaster.start_document(); return JSON.stringify(data["props"]); """) diff = json.loads(diff) # Only properties assert all(d[0] == "props" for d in diff) assert util.diff_contains_changed_property_key(diff, "value") # Should be a border in there somewhere (note: IE returns individual # border rules for each side, FF retains the single border rule) assert util.diff_contains_changed_property_value(diff, "purple") diff = sanitise_diffs(diff) # We can reuse test 2's diff apply thing self.apply_viewer_diff(diff) # Verify the diff made it through self.webdriver.switch_to_frame('viewer_iframe') input = self.webdriver.find_element_by_id('thetextinput') input_value = input.get_attribute("value") print "Got input value: %s. Expected: <original value>%s" % ( input_value, new_input_value) assert input_value.endswith(new_input_value) table = self.webdriver.find_element_by_id('thetable') table_background_colour = input.value_of_css_property( "background-color") table_background_colour = table_background_colour.replace(" ", "") assert table_background_colour in ("purple", "rgba(255,255,255,1)")
def test_all_property_transfer(self): """ Test 3: Initial property transfer - make sure the viewer gets stuff set. """ self.init_webdriver() # Replicate the initial test self.test_init_html() # Now let's go further and modify the document self.webdriver.execute_script(""" broadcaster_iframe.contentWindow.change_some_css(); """) # Change text input value property new_input_value = "dfkjgopi" self.webdriver.switch_to_frame('broadcaster_iframe') input = self.webdriver.find_element_by_id('thetextinput') input.send_keys(new_input_value) self.webdriver.switch_to_default_content() diff = self.execute_script(""" var data = broadcaster.start_document(); return JSON.stringify(data["props"]); """) diff = json.loads(diff) # Only properties assert all(d[0] == "props" for d in diff) assert util.diff_contains_changed_property_key(diff, "value") # Should be a border in there somewhere (note: IE returns individual # border rules for each side, FF retains the single border rule) assert util.diff_contains_changed_property_value(diff, "purple") diff = sanitise_diffs(diff) # We can reuse test 2's diff apply thing self.apply_viewer_diff(diff) # Verify the diff made it through self.webdriver.switch_to_frame('viewer_iframe') input = self.webdriver.find_element_by_id('thetextinput') input_value = input.get_attribute("value") print "Got input value: %s. Expected: <original value>%s" % (input_value, new_input_value) assert input_value.endswith(new_input_value) table = self.webdriver.find_element_by_id('thetable') table_background_colour = input.value_of_css_property("background-color") table_background_colour = table_background_colour.replace(" ", "") assert table_background_colour in ("purple", "rgba(255,255,255,1)")
def test_diff_transfer_inserted_table(self): """ Test 6: More advanced diff transfer, with big table """ self.init_webdriver() # Replicate the initial test self.test_init_html() # Now let's go further and modify the document self.webdriver.execute_script(""" broadcaster_iframe.contentWindow.insert_table(); """) diff = self.get_broadcaster_diff() for d in diff: if d[0] == "node": print "Diff: %s" % (d[3]) diff = sanitise_diffs(diff) self.apply_viewer_diff(diff) assert self.compare_frames(ignore_ie_default_attributes=True)
def test_diff_transfer_inserted_element(self): """ Test 5: Basic diff transfer, with an element inserted in the middle of the DOM. """ self.init_webdriver() # Replicate the initial test self.test_init_html() # Now let's go further and modify the document self.webdriver.execute_script(""" broadcaster_iframe.contentWindow.insert_div(); """) diff = self.get_broadcaster_diff() diff = sanitise_diffs(diff) self.apply_viewer_diff(diff) assert self.compare_frames()
def test_diff_transfer(self): """ Test 2: Basic diff transfer """ self.init_webdriver() # Replicate the initial test self.test_init_html() # Now let's go further and modify the document self.webdriver.execute_script(""" broadcaster_iframe.contentWindow.add_div(); """) diff = self.get_broadcaster_diff() print "==DIFF==" print json.dumps(diff) diff = sanitise_diffs(diff) self.apply_viewer_diff(diff) assert self.compare_frames()
def test_diff_transfer_inserted_table(self): """ Test 6: More advanced diff transfer, with big table """ self.init_webdriver() # Replicate the initial test self.test_init_html() # Now let's go further and modify the document self.webdriver.execute_script(""" broadcaster_iframe.contentWindow.insert_table(); """) diff = self.get_broadcaster_diff() for d in diff: if d[0] == "node": print "Diff: %s" % (d[3]) diff = sanitise_diffs(diff) self.apply_viewer_diff(diff) assert self.compare_frames(ignore_ie_default_attributes=True)
def test_diff_transfer_inserted_element(self): """ Test 5: Basic diff transfer, with an element inserted in the middle of the DOM. """ self.init_webdriver() # Replicate the initial test self.test_init_html() # Now let's go further and modify the document self.webdriver.execute_script(""" broadcaster_iframe.contentWindow.insert_div(); """) diff = self.get_broadcaster_diff() diff = sanitise_diffs(diff) self.apply_viewer_diff(diff) assert self.compare_frames()
def test_diff_transfer(self): """ Test 2: Basic diff transfer """ self.init_webdriver() # Replicate the initial test self.test_init_html() # Now let's go further and modify the document self.webdriver.execute_script(""" broadcaster_iframe.contentWindow.add_div(); """) diff = self.get_broadcaster_diff() print "==DIFF==" print json.dumps(diff) diff = sanitise_diffs(diff) self.apply_viewer_diff(diff) assert self.compare_frames()