Index: content/browser/plugin_loader_posix_unittest.cc |
diff --git a/content/browser/plugin_loader_posix_unittest.cc b/content/browser/plugin_loader_posix_unittest.cc |
index eb18428531b8462c48639912da8d56ab4194ffe2..ebf4473eaede10dcd32ac5b94496657e12ad4d67 100644 |
--- a/content/browser/plugin_loader_posix_unittest.cc |
+++ b/content/browser/plugin_loader_posix_unittest.cc |
@@ -276,3 +276,25 @@ TEST_F(PluginLoaderPosixTest, InternalPlugin) { |
message_loop()->RunAllPending(); |
EXPECT_EQ(1, did_callback); |
} |
+ |
+TEST_F(PluginLoaderPosixTest, AllCrashed) { |
+ int did_callback = 0; |
+ PluginService::GetPluginsCallback callback = |
+ base::Bind(&VerifyCallback, base::Unretained(&did_callback)); |
+ |
+ plugin_loader()->LoadPlugins(message_loop()->message_loop_proxy(), callback); |
+ |
+ AddThreePlugins(); |
+ |
+ EXPECT_EQ(0u, plugin_loader()->next_load_index()); |
+ |
+ EXPECT_CALL(*plugin_loader(), LoadPluginsInternal()).Times(3); |
+ plugin_loader()->OnProcessCrashed(42); |
+ plugin_loader()->OnProcessCrashed(42); |
+ plugin_loader()->OnProcessCrashed(42); |
+ |
+ message_loop()->RunAllPending(); |
+ EXPECT_EQ(1, did_callback); |
+ |
+ EXPECT_EQ(0u, plugin_loader()->loaded_plugins().size()); |
+} |