OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/file_path.h" | 5 #include "base/file_path.h" |
6 #include "base/string_util.h" | 6 #include "base/string_util.h" |
7 #include "base/test/test_timeouts.h" | 7 #include "base/test/test_timeouts.h" |
8 #include "base/threading/platform_thread.h" | 8 #include "base/threading/platform_thread.h" |
9 #include "chrome/app/chrome_command_ids.h" | 9 #include "chrome/app/chrome_command_ids.h" |
10 #include "chrome/common/url_constants.h" | 10 #include "chrome/common/url_constants.h" |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
149 printf("Test: %s\n", test_case_file_name.c_str()); | 149 printf("Test: %s\n", test_case_file_name.c_str()); |
150 RunLayoutTest(test_case_file_name, kNoHttpPort); | 150 RunLayoutTest(test_case_file_name, kNoHttpPort); |
151 | 151 |
152 // Navigate to a blank page so that any workers are cleaned up. | 152 // Navigate to a blank page so that any workers are cleaned up. |
153 // This helps leaks trackers do a better job of reporting. | 153 // This helps leaks trackers do a better job of reporting. |
154 scoped_refptr<TabProxy> tab(GetActiveTab()); | 154 scoped_refptr<TabProxy> tab(GetActiveTab()); |
155 GURL about_url(chrome::kAboutBlankURL); | 155 GURL about_url(chrome::kAboutBlankURL); |
156 EXPECT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS, tab->NavigateToURL(about_url)); | 156 EXPECT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS, tab->NavigateToURL(about_url)); |
157 } | 157 } |
158 | 158 |
159 void RunWorkerFileSystemLayoutTest(const std::string& test_case_file_name) { | |
160 FilePath worker_test_dir; | |
161 worker_test_dir = worker_test_dir.AppendASCII("fast"); | |
162 | |
163 FilePath filesystem_test_dir; | |
164 filesystem_test_dir = filesystem_test_dir.AppendASCII("filesystem"); | |
165 filesystem_test_dir = filesystem_test_dir.AppendASCII("workers"); | |
166 InitializeForLayoutTest(worker_test_dir, filesystem_test_dir, kNoHttpPort); | |
167 | |
168 FilePath resource_dir; | |
169 resource_dir = resource_dir.AppendASCII("resources"); | |
170 AddResourceForLayoutTest(worker_test_dir.AppendASCII("filesystem"), | |
171 resource_dir); | |
172 | |
173 RunLayoutTest(test_case_file_name, kNoHttpPort); | |
174 | |
175 // Navigate to a blank page so that any workers are cleaned up. | |
176 // This helps leaks trackers do a better job of reporting. | |
177 scoped_refptr<TabProxy> tab(GetActiveTab()); | |
178 DCHECK(tab.get()); | |
179 GURL about_url(chrome::kAboutBlankURL); | |
180 EXPECT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS, tab->NavigateToURL(about_url)); | |
181 } | |
182 | |
183 bool NavigateAndWaitForAuth(TabProxy* tab, const GURL& url) { | 159 bool NavigateAndWaitForAuth(TabProxy* tab, const GURL& url) { |
184 // Pass a large number of navigations to tell the tab to block until an auth | 160 // Pass a large number of navigations to tell the tab to block until an auth |
185 // dialog pops up. | 161 // dialog pops up. |
186 EXPECT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, | 162 EXPECT_EQ(AUTOMATION_MSG_NAVIGATION_AUTH_NEEDED, |
187 tab->NavigateToURLBlockUntilNavigationsComplete(url, 100)); | 163 tab->NavigateToURLBlockUntilNavigationsComplete(url, 100)); |
188 return tab->NeedsAuth(); | 164 return tab->NeedsAuth(); |
189 } | 165 } |
190 }; | 166 }; |
191 | 167 |
192 | 168 |
(...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
698 FilePath(kSingleSharedWorkersFile)); | 674 FilePath(kSingleSharedWorkersFile)); |
699 url2 = GURL(url2.spec() + StringPrintf("?id=%d", max_workers_per_tab)); | 675 url2 = GURL(url2.spec() + StringPrintf("?id=%d", max_workers_per_tab)); |
700 ASSERT_TRUE(window->AppendTab(url2)); | 676 ASSERT_TRUE(window->AppendTab(url2)); |
701 | 677 |
702 std::string value = WaitUntilCookieNonEmpty(tab.get(), url, | 678 std::string value = WaitUntilCookieNonEmpty(tab.get(), url, |
703 kTestCompleteCookie, TestTimeouts::action_max_timeout_ms()); | 679 kTestCompleteCookie, TestTimeouts::action_max_timeout_ms()); |
704 ASSERT_STREQ(kTestCompleteSuccess, value.c_str()); | 680 ASSERT_STREQ(kTestCompleteSuccess, value.c_str()); |
705 ASSERT_TRUE(WaitForProcessCountToBe(2, max_workers_per_tab+1)); | 681 ASSERT_TRUE(WaitForProcessCountToBe(2, max_workers_per_tab+1)); |
706 } | 682 } |
707 | 683 |
708 // FileSystem worker tests. | 684 class WorkerFileSystemTest : public WorkerTest { |
709 // They are disabled for now as the feature is not enabled by default. | 685 protected: |
710 // http://crbug.com/32277 | 686 void RunWorkerFileSystemLayoutTest(const std::string& test_case_file_name) { |
711 TEST_F(WorkerTest, DISABLED_WorkerFileSystemTemporaryTest) { | 687 FilePath worker_test_dir; |
688 worker_test_dir = worker_test_dir.AppendASCII("fast"); | |
689 | |
690 FilePath filesystem_test_dir; | |
691 filesystem_test_dir = filesystem_test_dir.AppendASCII("filesystem"); | |
692 filesystem_test_dir = filesystem_test_dir.AppendASCII("workers"); | |
693 InitializeForLayoutTest(worker_test_dir, filesystem_test_dir, kNoHttpPort); | |
694 | |
695 FilePath resource_dir; | |
696 resource_dir = resource_dir.AppendASCII("resources"); | |
697 AddResourceForLayoutTest(worker_test_dir.AppendASCII("filesystem"), | |
698 resource_dir); | |
699 | |
700 // FS tests also rely on common files in js/resources. | |
701 FilePath js_dir = worker_test_dir.AppendASCII("js"); | |
702 FilePath js_resource_dir; | |
703 js_resource_dir = js_resource_dir.AppendASCII("resources"); | |
704 AddResourceForLayoutTest(js_dir, js_resource_dir); | |
705 | |
706 RunLayoutTest(test_case_file_name, kNoHttpPort); | |
707 | |
708 // Navigate to a blank page so that any workers are cleaned up. | |
709 // This helps leaks trackers do a better job of reporting. | |
710 scoped_refptr<TabProxy> tab(GetActiveTab()); | |
711 ASSERT_TRUE(tab.get()); | |
712 GURL about_url(chrome::kAboutBlankURL); | |
713 EXPECT_EQ(AUTOMATION_MSG_NAVIGATION_SUCCESS, tab->NavigateToURL(about_url)); | |
714 } | |
715 }; | |
716 | |
717 TEST_F(WorkerFileSystemTest, Temporary) { | |
712 RunWorkerFileSystemLayoutTest("simple-temporary.html"); | 718 RunWorkerFileSystemLayoutTest("simple-temporary.html"); |
713 } | 719 } |
714 | 720 |
715 TEST_F(WorkerTest, DISABLED_WorkerFileSystemPersistentTest) { | 721 TEST_F(WorkerFileSystemTest, Persistent) { |
716 RunWorkerFileSystemLayoutTest("simple-persistent.html"); | 722 RunWorkerFileSystemLayoutTest("simple-persistent.html"); |
717 } | 723 } |
718 | 724 |
719 TEST_F(WorkerTest, DISABLED_WorkerFileSystemSyncTemporaryTest) { | 725 TEST_F(WorkerFileSystemTest, SyncTemporary) { |
720 RunWorkerFileSystemLayoutTest("simple-temporary-sync.html"); | 726 RunWorkerFileSystemLayoutTest("simple-temporary-sync.html"); |
721 } | 727 } |
722 | 728 |
723 TEST_F(WorkerTest, DISABLED_WorkerFileSystemSyncPersistentTest) { | 729 TEST_F(WorkerFileSystemTest, SyncPersistent) { |
724 RunWorkerFileSystemLayoutTest("simple-persistent-sync.html"); | 730 RunWorkerFileSystemLayoutTest("simple-persistent-sync.html"); |
725 } | 731 } |
726 | 732 |
727 TEST_F(WorkerTest, DISABLED_WorkerFileSystemAsyncOperationsTest) { | 733 TEST_F(WorkerFileSystemTest, AsyncOperations) { |
728 RunWorkerFileSystemLayoutTest("async-operations.html"); | 734 RunWorkerFileSystemLayoutTest("async-operations.html"); |
729 } | 735 } |
730 | 736 |
731 TEST_F(WorkerTest, DISABLED_WorkerFileSystemSyncOperationsTest) { | 737 TEST_F(WorkerFileSystemTest, SyncOperations) { |
732 RunWorkerFileSystemLayoutTest("sync-operations.html"); | 738 RunWorkerFileSystemLayoutTest("sync-operations.html"); |
733 } | 739 } |
740 | |
741 TEST_F(WorkerFileSystemTest, FileEntryToURISync) { | |
742 RunWorkerFileSystemLayoutTest("file-entry-to-uri-sync.html"); | |
743 } | |
744 | |
745 #if defined(OS_LINUX) | |
746 // These tests fail on Linux due to an assert in WebKit's RNG. | |
747 // See http://webkit.org/b/55728. | |
748 #define FileFromFileEntry DISABLED_FileFromFileEntry | |
749 #define FileFromFileEntrySync DISABLED_FileFromFileEntrySync | |
750 #define FileWriterTruncateExtend DISABLED_FileWriterTruncateExtend | |
751 #define FileWriterSyncTruncateExtend DISABLED_FileWriterSyncTruncateExtend | |
752 #define FileWriterSyncWriteOverlapped DISABLED_FileWriterSyncWriteOverlapped | |
753 #elif defined(OS_WIN) | |
754 // TODO(adamk): Enable these when landing http://codereview.chromium.org/6612051 | |
kinuko
2011/03/10 01:40:15
It would be great if you file a bug and refer the
| |
755 #define FileWriterTruncateExtend DISABLED_FileWriterTruncateExtend | |
756 #define FileWriterSyncTruncateExtend DISABLED_FileWriterSyncTruncateExtend | |
757 #define FileWriterSyncWriteOverlapped DISABLED_FileWriterSyncWriteOverlapped | |
758 #endif | |
759 TEST_F(WorkerFileSystemTest, FileFromFileEntry) { | |
760 RunWorkerFileSystemLayoutTest("file-from-file-entry.html"); | |
761 } | |
762 | |
763 TEST_F(WorkerFileSystemTest, FileFromFileEntrySync) { | |
764 RunWorkerFileSystemLayoutTest("file-from-file-entry-sync.html"); | |
765 } | |
766 | |
767 TEST_F(WorkerFileSystemTest, FileWriterTruncateExtend) { | |
768 RunWorkerFileSystemLayoutTest("file-writer-truncate-extend.html"); | |
769 } | |
770 | |
771 TEST_F(WorkerFileSystemTest, FileWriterSyncTruncateExtend) { | |
772 RunWorkerFileSystemLayoutTest("file-writer-sync-truncate-extend.html"); | |
773 } | |
774 | |
775 TEST_F(WorkerFileSystemTest, FileWriterSyncWriteOverlapped) { | |
776 RunWorkerFileSystemLayoutTest("file-writer-sync-write-overlapped.html"); | |
777 } | |
OLD | NEW |