Ejemplo n.º 1
0
    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)")
Ejemplo n.º 2
0
    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)")
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
    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()
Ejemplo n.º 5
0
    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()
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
    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()
Ejemplo n.º 8
0
    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()