| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "content/browser/web_contents/aura/window_slider.h" | 5 #include "content/browser/web_contents/aura/window_slider.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 #include "ui/aura/root_window.h" | 9 #include "ui/aura/root_window.h" |
| 10 #include "ui/aura/test/aura_test_base.h" | 10 #include "ui/aura/test/aura_test_base.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 private: | 53 private: |
| 54 // Overridden from aura::WindowDelegate: | 54 // Overridden from aura::WindowDelegate: |
| 55 virtual bool HasHitTestMask() const OVERRIDE { return true; } | 55 virtual bool HasHitTestMask() const OVERRIDE { return true; } |
| 56 | 56 |
| 57 DISALLOW_COPY_AND_ASSIGN(NoEventWindowDelegate); | 57 DISALLOW_COPY_AND_ASSIGN(NoEventWindowDelegate); |
| 58 }; | 58 }; |
| 59 | 59 |
| 60 class WindowSliderDelegateTest : public WindowSlider::Delegate { | 60 class WindowSliderDelegateTest : public WindowSlider::Delegate { |
| 61 public: | 61 public: |
| 62 WindowSliderDelegateTest() | 62 WindowSliderDelegateTest() |
| 63 : created_back_layer_(false), | 63 : can_create_layer_(true), |
| 64 created_back_layer_(false), |
| 64 created_front_layer_(false), | 65 created_front_layer_(false), |
| 65 slide_completed_(false), | 66 slide_completed_(false), |
| 66 slide_aborted_(false), | 67 slide_aborted_(false), |
| 67 slider_destroyed_(false) { | 68 slider_destroyed_(false) { |
| 68 } | 69 } |
| 69 virtual ~WindowSliderDelegateTest() {} | 70 virtual ~WindowSliderDelegateTest() {} |
| 70 | 71 |
| 71 void Reset() { | 72 void Reset() { |
| 73 can_create_layer_ = true; |
| 72 created_back_layer_ = false; | 74 created_back_layer_ = false; |
| 73 created_front_layer_ = false; | 75 created_front_layer_ = false; |
| 74 slide_completed_ = false; | 76 slide_completed_ = false; |
| 75 slide_aborted_ = false; | 77 slide_aborted_ = false; |
| 76 slider_destroyed_ = false; | 78 slider_destroyed_ = false; |
| 77 } | 79 } |
| 78 | 80 |
| 81 void SetCanCreateLayer(bool can_create_layer) { |
| 82 can_create_layer_ = can_create_layer; |
| 83 } |
| 84 |
| 79 bool created_back_layer() const { return created_back_layer_; } | 85 bool created_back_layer() const { return created_back_layer_; } |
| 80 bool created_front_layer() const { return created_front_layer_; } | 86 bool created_front_layer() const { return created_front_layer_; } |
| 81 bool slide_completed() const { return slide_completed_; } | 87 bool slide_completed() const { return slide_completed_; } |
| 82 bool slide_aborted() const { return slide_aborted_; } | 88 bool slide_aborted() const { return slide_aborted_; } |
| 83 bool slider_destroyed() const { return slider_destroyed_; } | 89 bool slider_destroyed() const { return slider_destroyed_; } |
| 84 | 90 |
| 85 private: | 91 private: |
| 86 ui::Layer* CreateLayerForTest() { | 92 ui::Layer* CreateLayerForTest() { |
| 93 CHECK(can_create_layer_); |
| 87 ui::Layer* layer = new ui::Layer(ui::LAYER_SOLID_COLOR); | 94 ui::Layer* layer = new ui::Layer(ui::LAYER_SOLID_COLOR); |
| 88 layer->SetColor(SK_ColorRED); | 95 layer->SetColor(SK_ColorRED); |
| 89 return layer; | 96 return layer; |
| 90 } | 97 } |
| 91 | 98 |
| 92 // Overridden from WindowSlider::Delegate: | 99 // Overridden from WindowSlider::Delegate: |
| 93 virtual ui::Layer* CreateBackLayer() OVERRIDE { | 100 virtual ui::Layer* CreateBackLayer() OVERRIDE { |
| 101 if (!can_create_layer_) |
| 102 return NULL; |
| 94 created_back_layer_ = true; | 103 created_back_layer_ = true; |
| 95 return CreateLayerForTest(); | 104 return CreateLayerForTest(); |
| 96 } | 105 } |
| 97 | 106 |
| 98 virtual ui::Layer* CreateFrontLayer() OVERRIDE { | 107 virtual ui::Layer* CreateFrontLayer() OVERRIDE { |
| 108 if (!can_create_layer_) |
| 109 return NULL; |
| 99 created_front_layer_ = true; | 110 created_front_layer_ = true; |
| 100 return CreateLayerForTest(); | 111 return CreateLayerForTest(); |
| 101 } | 112 } |
| 102 | 113 |
| 103 virtual void OnWindowSlideComplete() OVERRIDE { | 114 virtual void OnWindowSlideComplete() OVERRIDE { |
| 104 slide_completed_ = true; | 115 slide_completed_ = true; |
| 105 } | 116 } |
| 106 | 117 |
| 107 virtual void OnWindowSlideAborted() OVERRIDE { | 118 virtual void OnWindowSlideAborted() OVERRIDE { |
| 108 slide_aborted_ = true; | 119 slide_aborted_ = true; |
| 109 } | 120 } |
| 110 | 121 |
| 111 virtual void OnWindowSliderDestroyed() OVERRIDE { | 122 virtual void OnWindowSliderDestroyed() OVERRIDE { |
| 112 slider_destroyed_ = true; | 123 slider_destroyed_ = true; |
| 113 } | 124 } |
| 114 | 125 |
| 126 bool can_create_layer_; |
| 115 bool created_back_layer_; | 127 bool created_back_layer_; |
| 116 bool created_front_layer_; | 128 bool created_front_layer_; |
| 117 bool slide_completed_; | 129 bool slide_completed_; |
| 118 bool slide_aborted_; | 130 bool slide_aborted_; |
| 119 bool slider_destroyed_; | 131 bool slider_destroyed_; |
| 120 | 132 |
| 121 DISALLOW_COPY_AND_ASSIGN(WindowSliderDelegateTest); | 133 DISALLOW_COPY_AND_ASSIGN(WindowSliderDelegateTest); |
| 122 }; | 134 }; |
| 123 | 135 |
| 124 typedef aura::test::AuraTestBase WindowSliderTest; | 136 typedef aura::test::AuraTestBase WindowSliderTest; |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 aura::Window* new_window = window.get(); | 273 aura::Window* new_window = window.get(); |
| 262 EXPECT_NE(old_window, new_window); | 274 EXPECT_NE(old_window, new_window); |
| 263 | 275 |
| 264 EXPECT_TRUE(slider_delegate.created_back_layer()); | 276 EXPECT_TRUE(slider_delegate.created_back_layer()); |
| 265 EXPECT_TRUE(slider_delegate.slide_completed()); | 277 EXPECT_TRUE(slider_delegate.slide_completed()); |
| 266 EXPECT_FALSE(slider_delegate.created_front_layer()); | 278 EXPECT_FALSE(slider_delegate.created_front_layer()); |
| 267 EXPECT_FALSE(slider_delegate.slide_aborted()); | 279 EXPECT_FALSE(slider_delegate.slide_aborted()); |
| 268 EXPECT_TRUE(slider_delegate.slider_destroyed()); | 280 EXPECT_TRUE(slider_delegate.slider_destroyed()); |
| 269 } | 281 } |
| 270 | 282 |
| 283 TEST_F(WindowSliderTest, NoSlideWhenLayerCantBeCreated) { |
| 284 scoped_ptr<aura::Window> window(CreateNormalWindow(0, root_window(), NULL)); |
| 285 window->SetBounds(gfx::Rect(0, 0, 400, 400)); |
| 286 WindowSliderDelegateTest slider_delegate; |
| 287 slider_delegate.SetCanCreateLayer(false); |
| 288 |
| 289 aura::test::EventGenerator generator(root_window()); |
| 290 |
| 291 // Generate a horizontal overscroll. |
| 292 new WindowSlider(&slider_delegate, root_window(), window.get()); |
| 293 generator.GestureScrollSequence(gfx::Point(10, 10), |
| 294 gfx::Point(160, 10), |
| 295 base::TimeDelta::FromMilliseconds(10), |
| 296 10); |
| 297 EXPECT_FALSE(slider_delegate.created_back_layer()); |
| 298 EXPECT_TRUE(slider_delegate.slide_completed()); |
| 299 EXPECT_FALSE(slider_delegate.created_front_layer()); |
| 300 EXPECT_FALSE(slider_delegate.slide_aborted()); |
| 301 EXPECT_TRUE(slider_delegate.slider_destroyed()); |
| 302 window->SetTransform(gfx::Transform()); |
| 303 } |
| 304 |
| 271 } // namespace content | 305 } // namespace content |
| OLD | NEW |