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)
Exemplo n.º 2
0
  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)
Exemplo n.º 5
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)
Exemplo n.º 6
0
  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))