Home | History | Annotate | Download | only in glue
      1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "testing/gtest/include/gtest/gtest.h"
      6 #include "third_party/skia/include/core/SkBitmap.h"
      7 #include "webkit/glue/webkit_glue.h"
      8 
      9 namespace {
     10 
     11 TEST(WebkitGlueTest, DecodeImageFail) {
     12   std::string data("not an image");
     13   SkBitmap image;
     14   EXPECT_FALSE(webkit_glue::DecodeImage(data, &image));
     15   EXPECT_TRUE(image.isNull());
     16 }
     17 
     18 TEST(WebkitGlueTest, DecodeImage) {
     19   std::string data("GIF87a\x02\x00\x02\x00\xa1\x04\x00\x00\x00\x00\x00\x00\xff"
     20                    "\xff\x00\x00\x00\xff\x00,\x00\x00\x00\x00\x02\x00\x02\x00"
     21                    "\x00\x02\x03\x84\x16\x05\x00;", 42);
     22   EXPECT_EQ(42u, data.size());
     23   SkBitmap image;
     24   EXPECT_TRUE(webkit_glue::DecodeImage(data, &image));
     25   EXPECT_FALSE(image.isNull());
     26   EXPECT_EQ(2, image.width());
     27   EXPECT_EQ(2, image.height());
     28   EXPECT_EQ(SkBitmap::kARGB_8888_Config, image.config());
     29   image.lockPixels();
     30   EXPECT_EQ(SK_ColorBLACK, *image.getAddr32(0, 0));
     31   EXPECT_EQ(SK_ColorRED, *image.getAddr32(1, 0));
     32   EXPECT_EQ(SK_ColorGREEN, *image.getAddr32(0, 1));
     33   EXPECT_EQ(SK_ColorBLUE, *image.getAddr32(1, 1));
     34   image.unlockPixels();
     35 }
     36 
     37 }  // namespace
     38