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)
def testFramesFromMp4(self): host_platform = platform.GetHostPlatform() try: host_platform.InstallApplication('avconv') finally: if not host_platform.CanLaunchApplication('avconv'): logging.warning('Test not supported on this platform') return # pylint: disable=W0150 vid = os.path.join(util.GetUnittestDataDir(), 'vid.mp4') expected_timestamps = [ 0, 763, 783, 940, 1715, 1732, 1842, 1926, ] video_obj = video.Video(vid) # Calling _FramesFromMp4 should return all frames. # pylint: disable=W0212 for i, timestamp_bitmap in enumerate(video_obj._FramesFromMp4(vid)): timestamp, bmp = timestamp_bitmap self.assertEquals(timestamp, expected_timestamps[i]) expected_bitmap = image_util.FromPngFile(os.path.join( util.GetUnittestDataDir(), 'frame%d.png' % i)) self.assertTrue(image_util.AreEqual(expected_bitmap, bmp))
def testWriteCroppedBmpToPngFile(self): pixels = [255, 0, 0, 255, 255, 0, 0, 0, 0, 255, 255, 0, 0, 255, 0, 0, 0, 0] orig = image_util.FromRGBPixels(3, 2, pixels) orig = image_util.Crop(orig, 0, 0, 2, 2) temp_file = tempfile.NamedTemporaryFile(suffix='.png').name image_util.WritePngFile(orig, temp_file) new_file = image_util.FromPngFile(temp_file) self.assertTrue(image_util.AreEqual(orig, new_file, likely_equal=True))
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 _DownloadFromCloudStorage(self, img_name, page, tab): """Downloads the reference image for the given test from cloud storage, returning it as a Telemetry Bitmap object.""" # TODO(kbr): there's a race condition between the deletion of the # temporary file and gsutil's overwriting it. if not self.options.refimg_cloud_storage_bucket: raise Exception( '--refimg-cloud-storage-bucket argument is required') temp_file = tempfile.NamedTemporaryFile(suffix='.png').name cloud_storage.Get(self.options.refimg_cloud_storage_bucket, self._FormatReferenceImageName(img_name, page, tab), temp_file) return image_util.FromPngFile(temp_file)
def _GetReferenceImage(self, img_dir, img_name, cur_revision, screenshot): if not cur_revision: cur_revision = 0 image_path = os.path.join(img_dir, img_name) self._DeleteOldReferenceImages(image_path, cur_revision) image_path = image_path + '_' + str(cur_revision) + '.png' try: ref_png = image_util.FromPngFile(image_path) except IOError: ref_png = None if ref_png is not None: return ref_png print 'Reference image not found. Writing tab contents as reference.' self._WriteImage(image_path, screenshot) return screenshot
def testIsEqual(self): bmp = image_util.FromBase64Png(test_png) file_bmp = image_util.FromPngFile(test_png_path) self.assertTrue(image_util.AreEqual(bmp, file_bmp, likely_equal=True))
def testWritePngWithoutPngSuffixThrows(self): orig = image_util.FromPngFile(test_png_path) temp_file = tempfile.NamedTemporaryFile().name self.assertRaises(AssertionError, image_util.WritePngFile, orig, temp_file)
def testWritePngToPngFile(self): orig = image_util.FromPngFile(test_png_path) temp_file = tempfile.NamedTemporaryFile(suffix='.png').name image_util.WritePngFile(orig, temp_file) new_file = image_util.FromPngFile(temp_file) self.assertTrue(image_util.AreEqual(orig, new_file, likely_equal=True))