Index: chrome/browser/extensions/extension_save_page_apitest.cc |
diff --git a/chrome/browser/extensions/extension_save_page_apitest.cc b/chrome/browser/extensions/extension_save_page_apitest.cc |
index 288ecac5af320ca745ed745c7f70e88e555bd04b..b01b9422e6236263ef8e412631a454f71cbe01c9 100644 |
--- a/chrome/browser/extensions/extension_save_page_apitest.cc |
+++ b/chrome/browser/extensions/extension_save_page_apitest.cc |
@@ -5,7 +5,9 @@ |
#include "base/base_switches.h" |
#include "base/command_line.h" |
#include "chrome/browser/extensions/extension_apitest.h" |
+#include "chrome/browser/extensions/extension_save_page_api.h" |
#include "chrome/common/chrome_switches.h" |
+#include "chrome/test/base/ui_test_utils.h" |
#include "net/base/mock_host_resolver.h" |
class ExtensionSavePageApiTest : public ExtensionApiTest { |
@@ -14,6 +16,7 @@ class ExtensionSavePageApiTest : public ExtensionApiTest { |
virtual void SetUpCommandLine(CommandLine* command_line) { |
ExtensionApiTest::SetUpCommandLine(command_line); |
command_line->AppendSwitch(switches::kEnableExperimentalExtensionApis); |
+ command_line->AppendSwitchASCII(switches::kJavaScriptFlags, "--expose-gc"); |
} |
virtual void SetUpInProcessBrowserTestFixture() { |
@@ -32,6 +35,29 @@ class ExtensionSavePageApiTest : public ExtensionApiTest { |
#define MAYBE_SavePageAsMHTML SavePageAsMHTML |
#endif // defined(OS_LINUX) |
+class SavePageAsMHTMLDelegate : public SavePageAsMHTMLFunction::TestDelegate { |
+ public: |
+ SavePageAsMHTMLDelegate() { |
+ SavePageAsMHTMLFunction::SetTestDelegate(this); |
+ } |
+ |
+ virtual ~SavePageAsMHTMLDelegate() { |
+ SavePageAsMHTMLFunction::SetTestDelegate(NULL); |
+ } |
+ |
+ virtual void OnTemporaryFileCreated(const FilePath& temp_file) OVERRIDE { |
+ temp_file_ = temp_file; |
+ } |
+ |
+ FilePath temp_file_; |
+}; |
+ |
IN_PROC_BROWSER_TEST_F(ExtensionSavePageApiTest, MAYBE_SavePageAsMHTML) { |
+ SavePageAsMHTMLDelegate delegate; |
ASSERT_TRUE(RunExtensionTest("save_page")) << message_; |
+ ASSERT_FALSE(delegate.temp_file_.empty()); |
+ // Flush the file message loop to make sure the delete happens. |
+ ui_test_utils::RunAllPendingInMessageLoop(content::BrowserThread::FILE); |
+ ASSERT_FALSE(file_util::PathExists(delegate.temp_file_)); |
+ |
} |