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

Unified Diff: content/browser/in_process_webkit/dom_storage_browsertest.cc

Issue 9956117: DomStorageBrowserTest sanity check (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 9 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/in_process_webkit/dom_storage_browsertest.cc
===================================================================
--- content/browser/in_process_webkit/dom_storage_browsertest.cc (revision 130186)
+++ content/browser/in_process_webkit/dom_storage_browsertest.cc (working copy)
@@ -2,164 +2,58 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "base/command_line.h"
+#include "base/path_service.h"
#include "chrome/browser/ui/browser.h"
+#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
-#include "content/browser/renderer_host/render_view_host_impl.h"
#include "content/browser/tab_contents/tab_contents.h"
-#include "content/public/common/content_switches.h"
-#include "content/test/layout_browsertest.h"
+#include "content/public/common/content_paths.h"
+#include "net/base/net_util.h"
#include "webkit/dom_storage/dom_storage_types.h"
-#ifdef ENABLE_NEW_DOM_STORAGE_BACKEND
-// TODO(michaeln) Ensure they pass.
-#else
-static const char* kRootFiles[] = {
- "clear.html",
-// "complex-keys.html", // Output too big for a cookie. crbug.com/33472
-// "complex-values.html", // crbug.com/33472
- "quota.html",
- "remove-item.html",
- "window-attributes-exist.html",
- NULL
-};
-
-static const char* kEventsFiles[] = {
-// "basic-body-attribute.html", // crbug.com/33472
-// "basic.html", // crbug.com/33472
-// "basic-setattribute.html", // crbug.com/33472
- "case-sensitive.html",
- "documentURI.html",
- NULL
-};
-
-static const char* kStorageFiles[] = {
- "delete-removal.html",
- "enumerate-storage.html",
- "enumerate-with-length-and-key.html",
- "index-get-and-set.html",
- "simple-usage.html",
- "string-conversion.html",
-// "window-open.html", // TODO(jorlow): Fix
- NULL
-};
-
-class DOMStorageTestBase : public InProcessBrowserLayoutTest {
- protected:
- DOMStorageTestBase(const FilePath& test_case_dir)
- : InProcessBrowserLayoutTest(FilePath(), test_case_dir) {
+// This browser test is aimed towards exercising the DomStorage system
+// from end-to-end.
+class DomStorageBrowserTest : public InProcessBrowserTest {
+ public:
+ DomStorageBrowserTest() {
+ EnableDOMAutomation();
}
- virtual ~DOMStorageTestBase() {}
-
- virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
- command_line->AppendSwitch(switches::kDisablePopupBlocking);
+ GURL GetTestURL(const char* name) {
+ FilePath file_name = FilePath().AppendASCII(name);
+ FilePath dir;
+ PathService::Get(content::DIR_TEST_DATA, &dir);
+ return net::FilePathToFileURL(
+ dir.Append(FILE_PATH_LITERAL("dom_storage")).Append(file_name));
}
- virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
- InProcessBrowserLayoutTest::SetUpInProcessBrowserTestFixture();
- AddResourceForLayoutTest(
- FilePath().AppendASCII("fast").AppendASCII("js"),
- FilePath().AppendASCII("resources"));
- }
+ void SimpleTest(const GURL& test_url, bool incognito) {
+ // The test page will perform tests then navigate to either
+ // a #pass or #fail ref.
+ Browser* the_browser = incognito ? CreateIncognitoBrowser() : browser();
- // This is somewhat of a hack because we're running a real browser that
- // actually persists the LocalStorage state vs. DRT and TestShell which don't.
- // The correct fix is to fix the LayoutTests, but similar patches have been
- // rejected in the past.
- void ClearDOMStorage() {
- ASSERT_TRUE(ui_test_utils::ExecuteJavaScript(
- browser()->GetSelectedWebContents()->GetRenderViewHost(), L"",
- L"localStorage.clear();sessionStorage.clear();"));
- }
-
- // Runs each test in an array of strings until it hits a NULL.
- void RunTests(const char** files) {
- while (*files) {
- RunLayoutTest(*files);
- ClearDOMStorage();
- ++files;
+ LOG(INFO) << "Navigating to URL and blocking.";
+ ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(
michaeln 2012/04/03 21:40:36 oh well... this doesn't unblock upon the 2nd navig
+ the_browser, test_url, 2);
+ LOG(INFO) << "Navigation done.";
+ std::string result = the_browser->GetSelectedWebContents()->GetURL().ref();
+ if (result != "pass") {
+ std::string js_result;
+ ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractString(
+ the_browser->GetSelectedWebContents()->GetRenderViewHost(), L"",
+ L"window.domAutomationController.send(getLog())", &js_result));
+ FAIL() << "Failed: " << js_result;
}
}
-
- FilePath test_dir_;
};
-class DOMStorageTest : public DOMStorageTestBase {
- public:
- DOMStorageTest()
- : DOMStorageTestBase(FilePath().AppendASCII("storage").
- AppendASCII("domstorage")) {
- }
- virtual ~DOMStorageTest() {}
-};
+static const bool kIncognito = true;
+static const bool kNotIncognito = false;
-
-// http://crbug.com/113611
-IN_PROC_BROWSER_TEST_F(DOMStorageTest, FAILS_RootLayoutTests) {
- AddResourceForLayoutTest(FilePath(), FilePath().AppendASCII("script-tests"));
- RunTests(kRootFiles);
+IN_PROC_BROWSER_TEST_F(DomStorageBrowserTest, SanityCheck) {
+ SimpleTest(GetTestURL("sanity_check.html"), kNotIncognito);
}
-class DOMStorageTestEvents : public DOMStorageTestBase {
- public:
- DOMStorageTestEvents()
- : DOMStorageTestBase(FilePath().AppendASCII("storage").
- AppendASCII("domstorage").
- AppendASCII("events")) {
- }
- virtual ~DOMStorageTestEvents() {}
-};
-
-// Flakily fails on all platforms. http://crbug.com/102641
-IN_PROC_BROWSER_TEST_F(DOMStorageTestEvents, DISABLED_EventLayoutTests) {
- AddResourceForLayoutTest(
- FilePath(),
- FilePath().AppendASCII("storage").AppendASCII("domstorage").
- AppendASCII("script-tests"));
- RunTests(kEventsFiles);
+IN_PROC_BROWSER_TEST_F(DomStorageBrowserTest, SanityCheckIncognito) {
+ SimpleTest(GetTestURL("sanity_check.html"), kIncognito);
}
-
-class LocalStorageTest : public DOMStorageTestBase {
- public:
- LocalStorageTest()
- : DOMStorageTestBase(FilePath().AppendASCII("storage").
- AppendASCII("domstorage").
- AppendASCII("localstorage")) {
- }
- virtual ~LocalStorageTest() {}
-};
-
-#if defined(OS_LINUX)
-// http://crbug.com/104872
-#define MAYBE_LocalStorageLayoutTests FAILS_LocalStorageLayoutTests
-#else
-#define MAYBE_LocalStorageLayoutTests LocalStorageLayoutTests
-#endif
-
-IN_PROC_BROWSER_TEST_F(LocalStorageTest, MAYBE_LocalStorageLayoutTests) {
- RunTests(kStorageFiles);
-}
-
-class SessionStorageTest : public DOMStorageTestBase {
- public:
- SessionStorageTest()
- : DOMStorageTestBase(FilePath().AppendASCII("storage").
- AppendASCII("domstorage").
- AppendASCII("sessionstorage")) {
- }
- virtual ~SessionStorageTest() {}
-};
-
-#if defined(OS_LINUX)
-// http://crbug.com/104872
-#define MAYBE_SessionStorageLayoutTests FAILS_SessionStorageLayoutTests
-#else
-#define MAYBE_SessionStorageLayoutTests SessionStorageLayoutTests
-#endif
-
-IN_PROC_BROWSER_TEST_F(SessionStorageTest, MAYBE_SessionStorageLayoutTests) {
- RunTests(kStorageFiles);
-}
-
-#endif // ENABLE_NEW_DOM_STORAGE_BACKEND
« no previous file with comments | « no previous file | content/test/data/dom_storage/common.js » ('j') | content/test/data/dom_storage/sanity_check.js » ('J')

Powered by Google App Engine
This is Rietveld 408576698