- add sources.
[platform/framework/web/crosswalk.git] / src / content / browser / dom_storage / dom_storage_browsertest.cc
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/browser/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 =
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
41 static const bool kIncognito = true;
42 static const bool kNotIncognito = false;
43
44 IN_PROC_BROWSER_TEST_F(DOMStorageBrowserTest, SanityCheck) {
45   SimpleTest(GetTestUrl("dom_storage", "sanity_check.html"), kNotIncognito);
46 }
47
48 IN_PROC_BROWSER_TEST_F(DOMStorageBrowserTest, SanityCheckIncognito) {
49   SimpleTest(GetTestUrl("dom_storage", "sanity_check.html"), kIncognito);
50 }
51
52 }  // namespace content