def _test_image_transform( self, driver: WebDriver, image_holder: WebElement, left_transform_matrices: List[Tuple[str, str]], right_transform_matrices: List[Tuple[str, str]], ) -> None: main_image_container = driver.find_element_by_id( 'id_main_image_container', ) rotate_left_elem = driver.find_element_by_id('id_rotate_left') for rotation_matrix, translation_matrix in left_transform_matrices: rotate_left_elem.click() transform = image_holder.value_of_css_property('transform') self.assertEqual(rotation_matrix, transform) drag_image = ActionChains(driver) drag_image.move_to_element_with_offset( to_element=main_image_container, xoffset=57, yoffset=91, ) drag_image.click_and_hold() drag_image.move_to_element_with_offset( to_element=main_image_container, xoffset=107, yoffset=191, ) drag_image.release() drag_image.perform() transform = image_holder.value_of_css_property('transform') self.assertEqual(translation_matrix, transform) rotate_left_elem.click() rotate_right_elem = driver.find_element_by_id('id_rotate_right') for rotation_matrix, translation_matrix in right_transform_matrices: rotate_right_elem.click() transform = image_holder.value_of_css_property('transform') self.assertEqual(rotation_matrix, transform) drag_image = ActionChains(driver) drag_image.move_to_element_with_offset( to_element=main_image_container, xoffset=57, yoffset=91, ) drag_image.click_and_hold() drag_image.move_to_element_with_offset( to_element=main_image_container, xoffset=107, yoffset=191, ) drag_image.release() drag_image.perform() transform = image_holder.value_of_css_property('transform') self.assertEqual(translation_matrix, transform) rotate_right_elem.click()
def _test_zoom( self, driver: WebDriver, image_holder: WebElement, ) -> None: zoom_in_elem = driver.find_element_by_id('id_zoom_in') zoom_in_transforms = ( 'matrix(1.5, 0, 0, 1.5, 0, 0)', 'matrix(2.25, 0, 0, 2.25, 0, 0)', 'matrix(3.375, 0, 0, 3.375, 0, 0)', 'matrix(5.0625, 0, 0, 5.0625, 0, 0)', 'matrix(7.59375, 0, 0, 7.59375, 0, 0)', 'matrix(11.3906, 0, 0, 11.3906, 0, 0)', 'matrix(17.0859, 0, 0, 17.0859, 0, 0)', 'matrix(25.6289, 0, 0, 25.6289, 0, 0)', 'matrix(38.4434, 0, 0, 38.4434, 0, 0)', 'matrix(38.4434, 0, 0, 38.4434, 0, 0)', ) for zoom_in_transform in zoom_in_transforms: zoom_in_elem.click() transform = image_holder.value_of_css_property('transform') self.assertEqual(zoom_in_transform, transform) zoom_out_elem = driver.find_element_by_id('id_zoom_out') zoom_out_transforms = ( 'matrix(25.6289, 0, 0, 25.6289, 0, 0)', 'matrix(17.0859, 0, 0, 17.0859, 0, 0)', 'matrix(11.3906, 0, 0, 11.3906, 0, 0)', 'matrix(7.59375, 0, 0, 7.59375, 0, 0)', 'matrix(5.0625, 0, 0, 5.0625, 0, 0)', 'matrix(3.375, 0, 0, 3.375, 0, 0)', 'matrix(2.25, 0, 0, 2.25, 0, 0)', 'matrix(1.5, 0, 0, 1.5, 0, 0)', 'matrix(1, 0, 0, 1, 0, 0)', 'matrix(0.666667, 0, 0, 0.666667, 0, 0)', 'matrix(0.444444, 0, 0, 0.444444, 0, 0)', 'matrix(0.296296, 0, 0, 0.296296, 0, 0)', 'matrix(0.197531, 0, 0, 0.197531, 0, 0)', 'matrix(0.131687, 0, 0, 0.131687, 0, 0)', 'matrix(0.0877915, 0, 0, 0.0877915, 0, 0)', 'matrix(0.0877915, 0, 0, 0.0877915, 0, 0)', ) for zoom_out_transform in zoom_out_transforms: zoom_out_elem.click() transform = image_holder.value_of_css_property('transform') self.assertEqual(zoom_out_transform, transform) for _ in range(6): zoom_in_elem.click() transform = image_holder.value_of_css_property('transform') self.assertEqual('matrix(1, 0, 0, 1, 0, 0)', transform)
def _test_apply_modal( self, brightness_slider: WebElement, contrast_slider: WebElement, driver: WebDriver, image_view_port_elem: WebElement, ) -> None: move_sliders = ActionChains(driver) brightness_slider_size = brightness_slider.size contrast_slider_size = contrast_slider.size move_sliders.move_to_element_with_offset( to_element=brightness_slider, xoffset=brightness_slider_size['width'] - 1, yoffset=brightness_slider_size['height'] / 2, ) move_sliders.click() move_sliders.move_to_element_with_offset( to_element=contrast_slider, xoffset=contrast_slider_size['width'] - 1, yoffset=contrast_slider_size['height'] / 2, ) move_sliders.click() move_sliders.perform() apply_button = driver.find_element_by_id( 'id_apply_image_editor_button', ) apply_button.click() filter_style = image_view_port_elem.value_of_css_property('filter') self.assertEqual('invert(0) contrast(2) brightness(2)', filter_style)
def _test_invert( self, driver: WebDriver, image_view_port_elem: WebElement, ) -> None: invert_button = driver.find_element_by_id('id_invert_button') invert_button.click() filter_style = image_view_port_elem.value_of_css_property('filter') self.assertEqual('invert(1) contrast(1) brightness(1)', filter_style) invert_button.click() filter_style = image_view_port_elem.value_of_css_property('filter') self.assertEqual('invert(0) contrast(1) brightness(1)', filter_style)