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

Side by Side Diff: ash/wm/screen_dimmer_unittest.cc

Issue 10263011: chromeos: Add support for dimming the screen. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix test Created 8 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
« no previous file with comments | « ash/wm/screen_dimmer.cc ('k') | chrome/browser/chromeos/chrome_browser_main_chromeos.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012 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 "ash/wm/screen_dimmer.h"
6
7 #include "ash/shell.h"
8 #include "ash/test/ash_test_base.h"
9 #include "base/basictypes.h"
10 #include "base/memory/scoped_ptr.h"
11 #include "ui/aura/root_window.h"
12 #include "ui/gfx/compositor/layer.h"
13
14 namespace ash {
15 namespace test {
16
17 class ScreenDimmerTest : public AshTestBase {
18 public:
19 ScreenDimmerTest() : dimmer_(NULL) {}
20 virtual ~ScreenDimmerTest() {}
21
22 void SetUp() OVERRIDE {
23 AshTestBase::SetUp();
24 dimmer_ = Shell::GetInstance()->screen_dimmer();
25 test_api_.reset(new internal::ScreenDimmer::TestApi(dimmer_));
26 }
27
28 protected:
29 internal::ScreenDimmer* dimmer_; // not owned
30
31 scoped_ptr<internal::ScreenDimmer::TestApi> test_api_;
32
33 private:
34 DISALLOW_COPY_AND_ASSIGN(ScreenDimmerTest);
35 };
36
37 TEST_F(ScreenDimmerTest, DimAndUndim) {
38 // Don't create a layer until we need to.
39 EXPECT_TRUE(test_api_->layer() == NULL);
40 dimmer_->SetDimming(false);
41 EXPECT_TRUE(test_api_->layer() == NULL);
42
43 // When we enable dimming, the layer should be created and stacked at the top
44 // of the root's children.
45 dimmer_->SetDimming(true);
46 ASSERT_TRUE(test_api_->layer() != NULL);
47 ui::Layer* root_layer = Shell::GetInstance()->GetRootWindow()->layer();
48 ASSERT_TRUE(!root_layer->children().empty());
49 EXPECT_EQ(test_api_->layer(), root_layer->children().back());
50 EXPECT_TRUE(test_api_->layer()->visible());
51 EXPECT_GT(test_api_->layer()->GetTargetOpacity(), 0.0f);
52
53 // When we disable dimming, the layer should be animated back to full
54 // transparency.
55 dimmer_->SetDimming(false);
56 ASSERT_TRUE(test_api_->layer() != NULL);
57 EXPECT_TRUE(test_api_->layer()->visible());
58 EXPECT_FLOAT_EQ(0.0f, test_api_->layer()->GetTargetOpacity());
59 }
60
61 TEST_F(ScreenDimmerTest, ResizeLayer) {
62 // The dimming layer should be initially sized to cover the root window.
63 dimmer_->SetDimming(true);
64 ui::Layer* dimming_layer = test_api_->layer();
65 ASSERT_TRUE(dimming_layer != NULL);
66 ui::Layer* root_layer = Shell::GetInstance()->GetRootWindow()->layer();
67 EXPECT_EQ(gfx::Rect(root_layer->bounds().size()).ToString(),
68 dimming_layer->bounds().ToString());
69
70 // When we resize the root window, the dimming layer should be resized to
71 // match.
72 gfx::Size kNewSize(400, 300);
73 Shell::GetInstance()->GetRootWindow()->SetHostSize(kNewSize);
74 EXPECT_EQ(kNewSize.ToString(), dimming_layer->bounds().size().ToString());
75 }
76
77 } // namespace test
78 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/screen_dimmer.cc ('k') | chrome/browser/chromeos/chrome_browser_main_chromeos.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698