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

Unified Diff: content/browser/web_contents/aura/window_slider_unittest.cc

Issue 16950023: aura: Use the WindowSlider for gesture-nav while the page is reloading. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: test-self-review 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698