| Index: content/browser/web_contents/aura/window_slider_unittest.cc
|
| diff --git a/content/browser/web_contents/aura/window_slider_unittest.cc b/content/browser/web_contents/aura/window_slider_unittest.cc
|
| index 369d951e254233decc3ff8e0f2677ccaf3945204..cd64ffb2fd274563374cd0f696f8ebd81e156898 100644
|
| --- a/content/browser/web_contents/aura/window_slider_unittest.cc
|
| +++ b/content/browser/web_contents/aura/window_slider_unittest.cc
|
| @@ -60,7 +60,8 @@ class NoEventWindowDelegate : public aura::test::TestWindowDelegate {
|
| class WindowSliderDelegateTest : public WindowSlider::Delegate {
|
| public:
|
| WindowSliderDelegateTest()
|
| - : created_back_layer_(false),
|
| + : can_create_layer_(true),
|
| + created_back_layer_(false),
|
| created_front_layer_(false),
|
| slide_completed_(false),
|
| slide_aborted_(false),
|
| @@ -69,6 +70,7 @@ class WindowSliderDelegateTest : public WindowSlider::Delegate {
|
| virtual ~WindowSliderDelegateTest() {}
|
|
|
| void Reset() {
|
| + can_create_layer_ = true;
|
| created_back_layer_ = false;
|
| created_front_layer_ = false;
|
| slide_completed_ = false;
|
| @@ -76,6 +78,10 @@ class WindowSliderDelegateTest : public WindowSlider::Delegate {
|
| slider_destroyed_ = false;
|
| }
|
|
|
| + void SetCanCreateLayer(bool can_create_layer) {
|
| + can_create_layer_ = can_create_layer;
|
| + }
|
| +
|
| bool created_back_layer() const { return created_back_layer_; }
|
| bool created_front_layer() const { return created_front_layer_; }
|
| bool slide_completed() const { return slide_completed_; }
|
| @@ -84,6 +90,7 @@ class WindowSliderDelegateTest : public WindowSlider::Delegate {
|
|
|
| private:
|
| ui::Layer* CreateLayerForTest() {
|
| + CHECK(can_create_layer_);
|
| ui::Layer* layer = new ui::Layer(ui::LAYER_SOLID_COLOR);
|
| layer->SetColor(SK_ColorRED);
|
| return layer;
|
| @@ -91,11 +98,15 @@ class WindowSliderDelegateTest : public WindowSlider::Delegate {
|
|
|
| // Overridden from WindowSlider::Delegate:
|
| virtual ui::Layer* CreateBackLayer() OVERRIDE {
|
| + if (!can_create_layer_)
|
| + return NULL;
|
| created_back_layer_ = true;
|
| return CreateLayerForTest();
|
| }
|
|
|
| virtual ui::Layer* CreateFrontLayer() OVERRIDE {
|
| + if (!can_create_layer_)
|
| + return NULL;
|
| created_front_layer_ = true;
|
| return CreateLayerForTest();
|
| }
|
| @@ -112,6 +123,7 @@ class WindowSliderDelegateTest : public WindowSlider::Delegate {
|
| slider_destroyed_ = true;
|
| }
|
|
|
| + bool can_create_layer_;
|
| bool created_back_layer_;
|
| bool created_front_layer_;
|
| bool slide_completed_;
|
| @@ -268,4 +280,26 @@ TEST_F(WindowSliderTest, OwnerWindowChangesDuringWindowSlide) {
|
| EXPECT_TRUE(slider_delegate.slider_destroyed());
|
| }
|
|
|
| +TEST_F(WindowSliderTest, NoSlideWhenLayerCantBeCreated) {
|
| + scoped_ptr<aura::Window> window(CreateNormalWindow(0, root_window(), NULL));
|
| + window->SetBounds(gfx::Rect(0, 0, 400, 400));
|
| + WindowSliderDelegateTest slider_delegate;
|
| + slider_delegate.SetCanCreateLayer(false);
|
| +
|
| + aura::test::EventGenerator generator(root_window());
|
| +
|
| + // Generate a horizontal overscroll.
|
| + new WindowSlider(&slider_delegate, root_window(), window.get());
|
| + generator.GestureScrollSequence(gfx::Point(10, 10),
|
| + gfx::Point(160, 10),
|
| + base::TimeDelta::FromMilliseconds(10),
|
| + 10);
|
| + EXPECT_FALSE(slider_delegate.created_back_layer());
|
| + EXPECT_TRUE(slider_delegate.slide_completed());
|
| + EXPECT_FALSE(slider_delegate.created_front_layer());
|
| + EXPECT_FALSE(slider_delegate.slide_aborted());
|
| + EXPECT_TRUE(slider_delegate.slider_destroyed());
|
| + window->SetTransform(gfx::Transform());
|
| +}
|
| +
|
| } // namespace content
|
|
|