1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/path_service.h" 6 #include "content/browser/web_contents/web_contents_impl.h" 7 #include "content/common/dom_storage/dom_storage_types.h" 8 #include "content/public/common/content_paths.h" 9 #include "content/public/test/browser_test_utils.h" 10 #include "content/shell/shell.h" 11 #include "content/test/content_browser_test.h" 12 #include "content/test/content_browser_test_utils.h" 13 #include "net/base/net_util.h" 14 15 namespace content { 16 17 // This browser test is aimed towards exercising the DOMStorage system 18 // from end-to-end. 19 class DOMStorageBrowserTest : public ContentBrowserTest { 20 public: 21 DOMStorageBrowserTest() {} 22 23 void SimpleTest(const GURL& test_url, bool incognito) { 24 // The test page will perform tests then navigate to either 25 // a #pass or #fail ref. 26 Shell* the_browser = incognito ? CreateOffTheRecordBrowser() : shell(); 27 NavigateToURLBlockUntilNavigationsComplete(the_browser, test_url, 2); 28 std::string result = the_browser->web_contents()->GetURL().ref(); 29 if (result != "pass") { 30 std::string js_result; 31 ASSERT_TRUE(ExecuteScriptAndExtractString( 32 the_browser->web_contents(), 33 "window.domAutomationController.send(getLog())", 34 &js_result)); 35 FAIL() << "Failed: " << js_result; 36 } 37 } 38 }; 39 40 static const bool kIncognito = true; 41 static const bool kNotIncognito = false; 42 43 IN_PROC_BROWSER_TEST_F(DOMStorageBrowserTest, SanityCheck) { 44 SimpleTest(GetTestUrl("dom_storage", "sanity_check.html"), kNotIncognito); 45 } 46 47 IN_PROC_BROWSER_TEST_F(DOMStorageBrowserTest, SanityCheckIncognito) { 48 SimpleTest(GetTestUrl("dom_storage", "sanity_check.html"), kIncognito); 49 } 50 51 } // namespace content 52