Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / cc / test / pixel_test_utils.cc
index d913492..43e70df 100644 (file)
@@ -7,7 +7,8 @@
 #include <string>
 #include <vector>
 
-#include "base/file_util.h"
+#include "base/base64.h"
+#include "base/files/file_util.h"
 #include "base/logging.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/gfx/codec/png_codec.h"
@@ -20,14 +21,25 @@ bool WritePNGFile(const SkBitmap& bitmap, const base::FilePath& file_path,
   if (gfx::PNGCodec::EncodeBGRASkBitmap(bitmap,
                                         discard_transparency,
                                         &png_data) &&
-      file_util::CreateDirectory(file_path.DirName())) {
+      base::CreateDirectory(file_path.DirName())) {
     char* data = reinterpret_cast<char*>(&png_data[0]);
     int size = static_cast<int>(png_data.size());
-    return file_util::WriteFile(file_path, data, size) == size;
+    return base::WriteFile(file_path, data, size) == size;
   }
   return false;
 }
 
+std::string GetPNGDataUrl(const SkBitmap& bitmap) {
+  std::vector<unsigned char> png_data;
+  gfx::PNGCodec::EncodeBGRASkBitmap(bitmap, false, &png_data);
+  std::string data_url;
+  data_url.insert(data_url.end(), png_data.begin(), png_data.end());
+  base::Base64Encode(data_url, &data_url);
+  data_url.insert(0, "data:image/png;base64,");
+
+  return data_url;
+}
+
 bool ReadPNGFile(const base::FilePath& file_path, SkBitmap* bitmap) {
   DCHECK(bitmap);
   std::string png_data;
@@ -60,7 +72,15 @@ bool MatchesPNGFile(const SkBitmap& gen_bmp, base::FilePath ref_img_path,
   if (gen_bmp.width() == 0 || gen_bmp.height() == 0)
     return true;
 
-  return comparator.Compare(gen_bmp, ref_bmp);
+  bool compare = comparator.Compare(gen_bmp, ref_bmp);
+  if (!compare) {
+    std::string gen_bmp_data_url = GetPNGDataUrl(gen_bmp);
+    std::string ref_bmp_data_url = GetPNGDataUrl(ref_bmp);
+    LOG(ERROR) << "Pixels do not match!";
+    LOG(ERROR) << "Actual: " << gen_bmp_data_url;
+    LOG(ERROR) << "Expected: " << ref_bmp_data_url;
+  }
+  return compare;
 }
 
 }  // namespace cc