| // Copyright (c) 2010 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 "base/files/file_path.h" |
| #include "content/test/image_decoder_test.h" |
| #include "third_party/WebKit/public/web/WebImageDecoder.h" |
| |
| using blink::WebImageDecoder; |
| |
| class ICOImageDecoderTest : public ImageDecoderTest { |
| public: |
| ICOImageDecoderTest() : ImageDecoderTest("ico") { } |
| |
| protected: |
| blink::WebImageDecoder* CreateWebKitImageDecoder() const override { |
| return new blink::WebImageDecoder(blink::WebImageDecoder::TypeICO); |
| } |
| }; |
| |
| TEST_F(ICOImageDecoderTest, Decoding) { |
| TestDecoding(); |
| } |
| |
| TEST_F(ICOImageDecoderTest, ImageNonZeroFrameIndex) { |
| if (data_dir().empty()) |
| return; |
| // Test that the decoder decodes multiple sizes of icons which have them. |
| // Load an icon that has both favicon-size and larger entries. |
| base::FilePath multisize_icon_path(data_dir().AppendASCII("yahoo.ico")); |
| const base::FilePath md5_sum_path( |
| GetMD5SumPath(multisize_icon_path).value() + FILE_PATH_LITERAL("2")); |
| static const int kDesiredFrameIndex = 3; |
| TestWebKitImageDecoder(multisize_icon_path, md5_sum_path, kDesiredFrameIndex); |
| } |