1 // Copyright 2014 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 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_AVATAR_USER_IMAGE_MANAGER_TEST_UTIL_H_ 6 #define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_AVATAR_USER_IMAGE_MANAGER_TEST_UTIL_H_ 7 8 #include "base/basictypes.h" 9 #include "base/compiler_specific.h" 10 #include "base/files/file_path.h" 11 #include "base/memory/scoped_ptr.h" 12 #include "base/run_loop.h" 13 #include "chrome/browser/image_decoder.h" 14 15 class SKBitmap; 16 17 namespace base { 18 class FilePath; 19 } 20 21 namespace gfx { 22 class ImageSkia; 23 } 24 25 namespace chromeos { 26 namespace test { 27 28 extern const char kUserAvatarImage1RelativePath[]; 29 extern const char kUserAvatarImage2RelativePath[]; 30 31 // Returns |true| if the two given images are pixel-for-pixel identical. 32 bool AreImagesEqual(const gfx::ImageSkia& first, const gfx::ImageSkia& second); 33 34 class ImageLoader : public ImageDecoder::Delegate { 35 public: 36 explicit ImageLoader(const base::FilePath& path); 37 virtual ~ImageLoader(); 38 39 scoped_ptr<gfx::ImageSkia> Load(); 40 41 // ImageDecoder::Delegate: 42 virtual void OnImageDecoded(const ImageDecoder* decoder, 43 const SkBitmap& decoded_image) OVERRIDE; 44 virtual void OnDecodeImageFailed(const ImageDecoder* decoder) OVERRIDE; 45 46 private: 47 base::FilePath path_; 48 base::RunLoop run_loop_; 49 50 scoped_ptr<gfx::ImageSkia> decoded_image_; 51 52 DISALLOW_COPY_AND_ASSIGN(ImageLoader); 53 }; 54 55 } // namespace test 56 } // namespace chromeos 57 58 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_USERS_AVATAR_USER_IMAGE_MANAGER_TEST_UTIL_H_ 59