| // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "testing/gtest/include/gtest/gtest.h" |
| #include "third_party/skia/include/core/SkBitmap.h" |
| #include "webkit/glue/webkit_glue.h" |
| |
| namespace { |
| |
| TEST(WebkitGlueTest, DecodeImageFail) { |
| std::string data("not an image"); |
| SkBitmap image; |
| EXPECT_FALSE(webkit_glue::DecodeImage(data, &image)); |
| EXPECT_TRUE(image.isNull()); |
| } |
| |
| TEST(WebkitGlueTest, DecodeImage) { |
| std::string data("GIF87a\x02\x00\x02\x00\xa1\x04\x00\x00\x00\x00\x00\x00\xff" |
| "\xff\x00\x00\x00\xff\x00,\x00\x00\x00\x00\x02\x00\x02\x00" |
| "\x00\x02\x03\x84\x16\x05\x00;", 42); |
| EXPECT_EQ(42u, data.size()); |
| SkBitmap image; |
| EXPECT_TRUE(webkit_glue::DecodeImage(data, &image)); |
| EXPECT_FALSE(image.isNull()); |
| EXPECT_EQ(2, image.width()); |
| EXPECT_EQ(2, image.height()); |
| EXPECT_EQ(SkBitmap::kARGB_8888_Config, image.config()); |
| image.lockPixels(); |
| EXPECT_EQ(SK_ColorBLACK, *image.getAddr32(0, 0)); |
| EXPECT_EQ(SK_ColorRED, *image.getAddr32(1, 0)); |
| EXPECT_EQ(SK_ColorGREEN, *image.getAddr32(0, 1)); |
| EXPECT_EQ(SK_ColorBLUE, *image.getAddr32(1, 1)); |
| image.unlockPixels(); |
| } |
| |
| } // namespace |