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 15class SKBitmap; 16 17namespace base { 18class FilePath; 19} 20 21namespace gfx { 22class ImageSkia; 23} 24 25namespace chromeos { 26namespace test { 27 28extern const char kUserAvatarImage1RelativePath[]; 29extern const char kUserAvatarImage2RelativePath[]; 30 31// Returns |true| if the two given images are pixel-for-pixel identical. 32bool AreImagesEqual(const gfx::ImageSkia& first, const gfx::ImageSkia& second); 33 34class 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