1 // Copyright (c) 2010 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 "base/files/file_path.h" 6 #include "content/test/image_decoder_test.h" 7 #include "third_party/WebKit/public/web/WebImageDecoder.h" 8 9 using blink::WebImageDecoder; 10 11 class ICOImageDecoderTest : public ImageDecoderTest { 12 public: 13 ICOImageDecoderTest() : ImageDecoderTest("ico") { } 14 15 protected: 16 virtual blink::WebImageDecoder* CreateWebKitImageDecoder() const OVERRIDE { 17 return new blink::WebImageDecoder(blink::WebImageDecoder::TypeICO); 18 } 19 }; 20 21 TEST_F(ICOImageDecoderTest, Decoding) { 22 TestDecoding(); 23 } 24 25 TEST_F(ICOImageDecoderTest, ImageNonZeroFrameIndex) { 26 if (data_dir().empty()) 27 return; 28 // Test that the decoder decodes multiple sizes of icons which have them. 29 // Load an icon that has both favicon-size and larger entries. 30 base::FilePath multisize_icon_path(data_dir().AppendASCII("yahoo.ico")); 31 const base::FilePath md5_sum_path( 32 GetMD5SumPath(multisize_icon_path).value() + FILE_PATH_LITERAL("2")); 33 static const int kDesiredFrameIndex = 3; 34 TestWebKitImageDecoder(multisize_icon_path, md5_sum_path, kDesiredFrameIndex); 35 } 36