summaryrefslogtreecommitdiffstats
path: root/chrome/browser/instant/instant_loader_manager_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/instant/instant_loader_manager_unittest.cc')
-rw-r--r--chrome/browser/instant/instant_loader_manager_unittest.cc29
1 files changed, 29 insertions, 0 deletions
diff --git a/chrome/browser/instant/instant_loader_manager_unittest.cc b/chrome/browser/instant/instant_loader_manager_unittest.cc
index 9854184..fc877ab 100644
--- a/chrome/browser/instant/instant_loader_manager_unittest.cc
+++ b/chrome/browser/instant/instant_loader_manager_unittest.cc
@@ -309,3 +309,32 @@ TEST_F(InstantLoaderManagerTest, UpdateWithReadyPending) {
manager.UpdateLoader(0, &loader);
ASSERT_NE(loader.get(), non_instant_loader);
}
+
+// Make sure that DestroyNonInstantLoaders works.
+TEST_F(InstantLoaderManagerTest, DestroyNonInstantLoaders) {
+ InstantLoaderDelegateImpl delegate;
+ InstantLoaderManager manager(&delegate);
+ scoped_ptr<InstantLoader> loader;
+
+ manager.UpdateLoader(0, &loader);
+ InstantLoader* non_instant_loader = manager.current_loader();
+ EXPECT_TRUE(non_instant_loader);
+ EXPECT_EQ(0, non_instant_loader->template_url_id());
+ EXPECT_EQ(NULL, loader.get());
+ MarkReady(non_instant_loader);
+
+ manager.UpdateLoader(1, &loader);
+ InstantLoader* instant_loader = manager.pending_loader();
+ EXPECT_TRUE(instant_loader);
+ EXPECT_EQ(1, instant_loader->template_url_id());
+ EXPECT_EQ(NULL, loader.get());
+ EXPECT_EQ(1u, manager.num_instant_loaders());
+
+ manager.DestroyNonInstantLoaders();
+
+ EXPECT_EQ(NULL, manager.current_loader());
+ EXPECT_EQ(NULL, manager.pending_loader());
+
+ // The instant loader should still exist.
+ EXPECT_EQ(1u, manager.num_instant_loaders());
+}