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/public/test/content_browser_test.h" 11#include "content/public/test/content_browser_test_utils.h" 12#include "content/shell/browser/shell.h" 13#include "net/base/net_util.h" 14 15namespace content { 16 17// This browser test is aimed towards exercising the DOMStorage system 18// from end-to-end. 19class 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 = 29 the_browser->web_contents()->GetLastCommittedURL().ref(); 30 if (result != "pass") { 31 std::string js_result; 32 ASSERT_TRUE(ExecuteScriptAndExtractString( 33 the_browser->web_contents(), 34 "window.domAutomationController.send(getLog())", 35 &js_result)); 36 FAIL() << "Failed: " << js_result; 37 } 38 } 39}; 40 41static const bool kIncognito = true; 42static const bool kNotIncognito = false; 43 44IN_PROC_BROWSER_TEST_F(DOMStorageBrowserTest, SanityCheck) { 45 SimpleTest(GetTestUrl("dom_storage", "sanity_check.html"), kNotIncognito); 46} 47 48IN_PROC_BROWSER_TEST_F(DOMStorageBrowserTest, SanityCheckIncognito) { 49 SimpleTest(GetTestUrl("dom_storage", "sanity_check.html"), kIncognito); 50} 51 52} // namespace content 53