Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(38)

Side by Side Diff: chrome/browser/chromeos/login/user_image_manager_test_util.cc

Issue 286933002: [cros login] Split login related classes into subfolders. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix includes in new tests Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2013 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 "chrome/browser/chromeos/login/user_image_manager_test_util.h"
6
7 #include <string>
8
9 #include "base/file_util.h"
10 #include "base/memory/ref_counted.h"
11 #include "base/message_loop/message_loop_proxy.h"
12 #include "third_party/skia/include/core/SkBitmap.h"
13 #include "ui/gfx/image/image_skia.h"
14 #include "ui/gfx/image/image_skia_rep.h"
15
16 namespace chromeos {
17 namespace test {
18
19 const char kUserAvatarImage1RelativePath[] = "chromeos/avatar1.jpg";
20 const char kUserAvatarImage2RelativePath[] = "chromeos/avatar2.jpg";
21
22 bool AreImagesEqual(const gfx::ImageSkia& first, const gfx::ImageSkia& second) {
23 if (first.width() != second.width() || first.height() != second.height())
24 return false;
25 const SkBitmap* first_bitmap = first.bitmap();
26 const SkBitmap* second_bitmap = second.bitmap();
27 if (!first_bitmap && !second_bitmap)
28 return true;
29 if (!first_bitmap || !second_bitmap)
30 return false;
31
32 const size_t size = first_bitmap->getSize();
33 if (second_bitmap->getSize() != size)
34 return false;
35
36 SkAutoLockPixels first_pixel_lock(*first_bitmap);
37 SkAutoLockPixels second_pixel_lock(*second_bitmap);
38 uint8_t* first_data = reinterpret_cast<uint8_t*>(first_bitmap->getPixels());
39 uint8_t* second_data = reinterpret_cast<uint8_t*>(second_bitmap->getPixels());
40 for (size_t i = 0; i < size; ++i) {
41 if (first_data[i] != second_data[i])
42 return false;
43 }
44 return true;
45 }
46
47 ImageLoader::ImageLoader(const base::FilePath& path) : path_(path) {
48 }
49
50 ImageLoader::~ImageLoader() {
51 }
52
53 scoped_ptr<gfx::ImageSkia> ImageLoader::Load() {
54 std::string image_data;
55 ReadFileToString(path_, &image_data);
56 scoped_refptr<ImageDecoder> image_decoder = new ImageDecoder(
57 this,
58 image_data,
59 ImageDecoder::ROBUST_JPEG_CODEC);
60 image_decoder->Start(base::MessageLoopProxy::current());
61 run_loop_.Run();
62 return decoded_image_.Pass();
63 }
64
65 void ImageLoader::OnImageDecoded(const ImageDecoder* decoder,
66 const SkBitmap& decoded_image) {
67 decoded_image_.reset(
68 new gfx::ImageSkia(gfx::ImageSkiaRep(decoded_image, 1.0f)));
69 run_loop_.Quit();
70 }
71
72 void ImageLoader::OnDecodeImageFailed(const ImageDecoder* decoder) {
73 run_loop_.Quit();
74 }
75
76 } // namespace test
77 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/user_image_manager_test_util.h ('k') | chrome/browser/chromeos/login/user_image_sync_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698