def testScreenshot(self): if not self._tab.screenshot_supported: logging.warning( 'Browser does not support screenshots, skipping test.') return self.Navigate('green_rect.html') pixel_ratio = self._tab.EvaluateJavaScript( 'window.devicePixelRatio || 1') screenshot = self._tab.Screenshot(5) assert screenshot is not None image_util.GetPixelColor(screenshot, 0 * pixel_ratio, 0 * pixel_ratio).AssertIsRGB(0, 255, 0, tolerance=2) image_util.GetPixelColor(screenshot, 31 * pixel_ratio, 31 * pixel_ratio).AssertIsRGB(0, 255, 0, tolerance=2) image_util.GetPixelColor(screenshot, 32 * pixel_ratio, 32 * pixel_ratio).AssertIsRGB(255, 255, 255, tolerance=2)
def testReadFromPngFile(self): file_bmp = image_util.FromPngFile(test_png_path) self.assertEquals(2, image_util.Width(file_bmp)) self.assertEquals(2, image_util.Height(file_bmp)) image_util.GetPixelColor(file_bmp, 0, 0).AssertIsRGB(255, 0, 0) image_util.GetPixelColor(file_bmp, 1, 1).AssertIsRGB(0, 255, 0) image_util.GetPixelColor(file_bmp, 0, 1).AssertIsRGB(0, 0, 255) image_util.GetPixelColor(file_bmp, 1, 0).AssertIsRGB(255, 255, 0)
def testReadFromBase64Png(self): bmp = image_util.FromBase64Png(test_png) self.assertEquals(2, image_util.Width(bmp)) self.assertEquals(2, image_util.Height(bmp)) image_util.GetPixelColor(bmp, 0, 0).AssertIsRGB(255, 0, 0) image_util.GetPixelColor(bmp, 1, 1).AssertIsRGB(0, 255, 0) image_util.GetPixelColor(bmp, 0, 1).AssertIsRGB(0, 0, 255) image_util.GetPixelColor(bmp, 1, 0).AssertIsRGB(255, 255, 0)
def testCrop(self): pixels = [0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 0, 1, 0, 1, 1, 0, 2, 1, 0, 3, 1, 0, 0, 2, 0, 1, 2, 0, 2, 2, 0, 3, 2, 0] bmp = image_util.FromRGBPixels(4, 3, pixels) bmp = image_util.Crop(bmp, 1, 2, 2, 1) self.assertEquals(2, image_util.Width(bmp)) self.assertEquals(1, image_util.Height(bmp)) image_util.GetPixelColor(bmp, 0, 0).AssertIsRGB(1, 2, 0) image_util.GetPixelColor(bmp, 1, 0).AssertIsRGB(2, 2, 0) self.assertEquals(image_util.Pixels(bmp), bytearray([1, 2, 0, 2, 2, 0]))
def _CompareScreenshotSamples(screenshot, expectations, device_pixel_ratio): for expectation in expectations: location = expectation["location"] x = int(location[0] * device_pixel_ratio) y = int(location[1] * device_pixel_ratio) if (x < 0 or y < 0 or x > image_util.Width(screenshot) or y > image_util.Height(screenshot)): raise page_test.Failure( 'Expected pixel location [%d, %d] is out of range on [%d, %d] image' % (x, y, image_util.Width(screenshot), image_util.Height(screenshot))) actual_color = image_util.GetPixelColor(screenshot, x, y) expected_color = rgba_color.RgbaColor(expectation["color"][0], expectation["color"][1], expectation["color"][2]) if not actual_color.IsEqual(expected_color, expectation["tolerance"]): raise page_test.Failure('Expected pixel at ' + str(location) + ' to be ' + str(expectation["color"]) + " but got [" + str(actual_color.r) + ", " + str(actual_color.g) + ", " + str(actual_color.b) + "]")
def testDiff(self): file_bmp = image_util.FromPngFile(test_png_path) file_bmp_2 = image_util.FromPngFile(test_png_2_path) diff_bmp = image_util.Diff(file_bmp, file_bmp) self.assertEquals(2, image_util.Width(diff_bmp)) self.assertEquals(2, image_util.Height(diff_bmp)) image_util.GetPixelColor(diff_bmp, 0, 0).AssertIsRGB(0, 0, 0) image_util.GetPixelColor(diff_bmp, 1, 1).AssertIsRGB(0, 0, 0) image_util.GetPixelColor(diff_bmp, 0, 1).AssertIsRGB(0, 0, 0) image_util.GetPixelColor(diff_bmp, 1, 0).AssertIsRGB(0, 0, 0) diff_bmp = image_util.Diff(file_bmp, file_bmp_2) self.assertEquals(3, image_util.Width(diff_bmp)) self.assertEquals(3, image_util.Height(diff_bmp)) image_util.GetPixelColor(diff_bmp, 0, 0).AssertIsRGB(0, 255, 255) image_util.GetPixelColor(diff_bmp, 1, 1).AssertIsRGB(255, 0, 255) image_util.GetPixelColor(diff_bmp, 0, 1).AssertIsRGB(255, 255, 0) image_util.GetPixelColor(diff_bmp, 1, 0).AssertIsRGB(0, 0, 255) image_util.GetPixelColor(diff_bmp, 0, 2).AssertIsRGB(255, 255, 255) image_util.GetPixelColor(diff_bmp, 1, 2).AssertIsRGB(255, 255, 255) image_util.GetPixelColor(diff_bmp, 2, 0).AssertIsRGB(255, 255, 255) image_util.GetPixelColor(diff_bmp, 2, 1).AssertIsRGB(255, 255, 255) image_util.GetPixelColor(diff_bmp, 2, 2).AssertIsRGB(255, 255, 255)