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

Side by Side Diff: ash/desktop_background/wallpaper_resizer_unittest.cc

Issue 17502005: Revert r207560 and r207566 to reland r207511. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add more SupportsMultipleDisplays checks Created 7 years, 6 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
« no previous file with comments | « ash/desktop_background/wallpaper_resizer.cc ('k') | ash/display/display_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/desktop_background/wallpaper_resizer.h" 5 #include "ash/desktop_background/wallpaper_resizer.h"
6 6
7 #include "ash/desktop_background/wallpaper_resizer_observer.h" 7 #include "ash/desktop_background/wallpaper_resizer_observer.h"
8 #include "ash/test/ash_test_base.h" 8 #include "base/message_loop/message_loop.h"
9 #include "content/public/test/test_browser_thread.h"
10 #include "testing/gtest/include/gtest/gtest.h"
9 #include "ui/gfx/image/image_skia_rep.h" 11 #include "ui/gfx/image/image_skia_rep.h"
10 12
11 using aura::RootWindow; 13 using aura::RootWindow;
12 using aura::Window; 14 using aura::Window;
13 15
14 namespace { 16 namespace {
15 17
16 const int kTestImageWidth = 5; 18 const int kTestImageWidth = 5;
17 const int kTestImageHeight = 2; 19 const int kTestImageHeight = 2;
18 const int kTargetWidth = 1; 20 const int kTargetWidth = 1;
(...skipping 29 matching lines...) Expand all
48 const SkBitmap* image_bitmap = image.bitmap(); 50 const SkBitmap* image_bitmap = image.bitmap();
49 SkAutoLockPixels image_lock(*image_bitmap); 51 SkAutoLockPixels image_lock(*image_bitmap);
50 return *image_bitmap->getAddr32(0, 0) == expect; 52 return *image_bitmap->getAddr32(0, 0) == expect;
51 } 53 }
52 54
53 } // namespace 55 } // namespace
54 56
55 namespace ash { 57 namespace ash {
56 namespace internal { 58 namespace internal {
57 59
58 class WallpaperResizerTest : public test::AshTestBase, 60 class WallpaperResizerTest : public testing::Test,
59 public WallpaperResizerObserver { 61 public WallpaperResizerObserver {
60 public: 62 public:
61 WallpaperResizerTest() {} 63 WallpaperResizerTest()
64 : ui_thread_(content::BrowserThread::UI, &message_loop_) {
65 }
62 virtual ~WallpaperResizerTest() {} 66 virtual ~WallpaperResizerTest() {}
63 67
64 gfx::ImageSkia Resize(const WallpaperInfo& info, 68 gfx::ImageSkia Resize(const gfx::ImageSkia& image,
65 const gfx::Size& target_size, 69 const gfx::Size& target_size,
66 const gfx::ImageSkia& image) { 70 WallpaperLayout layout) {
67 scoped_ptr<WallpaperResizer> resizer; 71 scoped_ptr<WallpaperResizer> resizer;
68 resizer.reset(new WallpaperResizer(info, target_size, image)); 72 resizer.reset(new WallpaperResizer(image, target_size, layout));
69 resizer->AddObserver(this); 73 resizer->AddObserver(this);
70 resizer->StartResize(); 74 resizer->StartResize();
71 WaitForResize(); 75 WaitForResize();
72 resizer->RemoveObserver(this); 76 resizer->RemoveObserver(this);
73 return resizer->wallpaper_image(); 77 return resizer->wallpaper_image();
74 } 78 }
75 79
76 void WaitForResize() { 80 void WaitForResize() {
77 base::MessageLoop::current()->Run(); 81 message_loop_.Run();
78 } 82 }
79 83
80 virtual void OnWallpaperResized() OVERRIDE { 84 virtual void OnWallpaperResized() OVERRIDE {
81 base::MessageLoop::current()->Quit(); 85 message_loop_.Quit();
82 } 86 }
83 87
84 private: 88 private:
89 base::MessageLoop message_loop_;
90 content::TestBrowserThread ui_thread_;
91
85 DISALLOW_COPY_AND_ASSIGN(WallpaperResizerTest); 92 DISALLOW_COPY_AND_ASSIGN(WallpaperResizerTest);
86 }; 93 };
87 94
88 TEST_F(WallpaperResizerTest, BasicResize) { 95 TEST_F(WallpaperResizerTest, BasicResize) {
89 // Keeps in sync with WallpaperLayout enum. 96 // Keeps in sync with WallpaperLayout enum.
90 WallpaperLayout layouts[4] = { 97 WallpaperLayout layouts[4] = {
91 WALLPAPER_LAYOUT_CENTER, 98 WALLPAPER_LAYOUT_CENTER,
92 WALLPAPER_LAYOUT_CENTER_CROPPED, 99 WALLPAPER_LAYOUT_CENTER_CROPPED,
93 WALLPAPER_LAYOUT_STRETCH, 100 WALLPAPER_LAYOUT_STRETCH,
94 WALLPAPER_LAYOUT_TILE, 101 WALLPAPER_LAYOUT_TILE,
95 }; 102 };
96 const int length = arraysize(layouts); 103 const int length = arraysize(layouts);
97 104
98 for (int i = 0; i < length; i++) { 105 for (int i = 0; i < length; i++) {
99 WallpaperLayout layout = layouts[i]; 106 WallpaperLayout layout = layouts[i];
100 WallpaperInfo info = { 0, layout };
101 gfx::ImageSkia small_image(gfx::ImageSkiaRep(gfx::Size(10, 20), 107 gfx::ImageSkia small_image(gfx::ImageSkiaRep(gfx::Size(10, 20),
102 ui::SCALE_FACTOR_100P)); 108 ui::SCALE_FACTOR_100P));
103 109
104 gfx::ImageSkia resized_small = Resize(info, gfx::Size(800, 600), 110 gfx::ImageSkia resized_small = Resize(small_image, gfx::Size(800, 600),
105 small_image); 111 layout);
106 EXPECT_EQ(10, resized_small.width()); 112 EXPECT_EQ(10, resized_small.width());
107 EXPECT_EQ(20, resized_small.height()); 113 EXPECT_EQ(20, resized_small.height());
108 114
109 gfx::ImageSkia large_image(gfx::ImageSkiaRep(gfx::Size(1000, 1000), 115 gfx::ImageSkia large_image(gfx::ImageSkiaRep(gfx::Size(1000, 1000),
110 ui::SCALE_FACTOR_100P)); 116 ui::SCALE_FACTOR_100P));
111 gfx::ImageSkia resized_large = Resize(info, gfx::Size(800, 600), 117 gfx::ImageSkia resized_large = Resize(large_image, gfx::Size(800, 600),
112 large_image); 118 layout);
113 EXPECT_EQ(800, resized_large.width()); 119 EXPECT_EQ(800, resized_large.width());
114 EXPECT_EQ(600, resized_large.height()); 120 EXPECT_EQ(600, resized_large.height());
115 } 121 }
116 } 122 }
117 123
118 // Test for crbug.com/244629. "CENTER_CROPPED generates the same image as 124 // Test for crbug.com/244629. "CENTER_CROPPED generates the same image as
119 // STRETCH layout" 125 // STRETCH layout"
120 TEST_F(WallpaperResizerTest, AllLayoutDifferent) { 126 TEST_F(WallpaperResizerTest, AllLayoutDifferent) {
121 gfx::ImageSkia image = CreateTestImage( 127 gfx::ImageSkia image = CreateTestImage(
122 gfx::Size(kTestImageWidth, kTestImageHeight)); 128 gfx::Size(kTestImageWidth, kTestImageHeight));
123 129
124 gfx::Size target_size = gfx::Size(kTargetWidth, kTargetHeight); 130 gfx::Size target_size = gfx::Size(kTargetWidth, kTargetHeight);
125 WallpaperInfo info_center = { 0, WALLPAPER_LAYOUT_CENTER }; 131 gfx::ImageSkia center = Resize(image, target_size, WALLPAPER_LAYOUT_CENTER);
126 gfx::ImageSkia center = Resize(info_center, target_size, image);
127 132
128 WallpaperInfo info_center_cropped = { 0, WALLPAPER_LAYOUT_CENTER_CROPPED }; 133 gfx::ImageSkia center_cropped = Resize(image, target_size,
129 gfx::ImageSkia center_cropped = Resize(info_center_cropped, target_size, 134 WALLPAPER_LAYOUT_CENTER_CROPPED);
130 image);
131 135
132 WallpaperInfo info_stretch = { 0, WALLPAPER_LAYOUT_STRETCH }; 136 gfx::ImageSkia stretch = Resize(image, target_size, WALLPAPER_LAYOUT_STRETCH);
133 gfx::ImageSkia stretch = Resize(info_stretch, target_size, image);
134 137
135 WallpaperInfo info_tile = { 0, WALLPAPER_LAYOUT_TILE }; 138 gfx::ImageSkia tile = Resize(image, target_size, WALLPAPER_LAYOUT_TILE);
136 gfx::ImageSkia tile = Resize(info_tile, target_size, image);
137 139
138 EXPECT_TRUE(IsColor(center, kExpectedCenter)); 140 EXPECT_TRUE(IsColor(center, kExpectedCenter));
139 EXPECT_TRUE(IsColor(center_cropped, kExpectedCenterCropped)); 141 EXPECT_TRUE(IsColor(center_cropped, kExpectedCenterCropped));
140 EXPECT_TRUE(IsColor(stretch, kExpectedStretch)); 142 EXPECT_TRUE(IsColor(stretch, kExpectedStretch));
141 EXPECT_TRUE(IsColor(tile, kExpectedTile)); 143 EXPECT_TRUE(IsColor(tile, kExpectedTile));
142 } 144 }
143 145
144 } // namespace internal 146 } // namespace internal
145 } // namespace ash 147 } // namespace ash
OLDNEW
« no previous file with comments | « ash/desktop_background/wallpaper_resizer.cc ('k') | ash/display/display_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698