| Index: chrome/browser/policy/policy_browsertest.cc
|
| diff --git a/chrome/browser/policy/policy_browsertest.cc b/chrome/browser/policy/policy_browsertest.cc
|
| index 70b5f841e5717ecddb9315971710b796dcef029d..336d5e1592f3d636a897cb84b54f22f11740c685 100644
|
| --- a/chrome/browser/policy/policy_browsertest.cc
|
| +++ b/chrome/browser/policy/policy_browsertest.cc
|
| @@ -170,12 +170,11 @@ void CheckURLIsBlocked(Browser* browser, const GURL& url) {
|
| EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool(
|
| contents->GetRenderViewHost(),
|
| std::wstring(),
|
| - ASCIIToWide(
|
| - "var hasError = false;"
|
| - "var error = document.getElementById('errorDetails');"
|
| - "if (error)"
|
| - " hasError = error.textContent.indexOf('Error 138') == 0;"
|
| - "domAutomationController.send(hasError);"),
|
| + L"var hasError = false;"
|
| + L"var error = document.getElementById('errorDetails');"
|
| + L"if (error)"
|
| + L" hasError = error.textContent.indexOf('Error 138') == 0;"
|
| + L"domAutomationController.send(hasError);",
|
| &result));
|
| EXPECT_TRUE(result);
|
| }
|
| @@ -234,9 +233,9 @@ bool IsWebGLEnabled(content::WebContents* contents) {
|
|
|
| bool IsJavascriptEnabled(content::WebContents* contents) {
|
| content::RenderViewHost* rvh = contents->GetRenderViewHost();
|
| - base::Value* value = rvh->ExecuteJavascriptAndGetValue(
|
| + scoped_ptr<base::Value> value(rvh->ExecuteJavascriptAndGetValue(
|
| string16(),
|
| - ASCIIToUTF16("123"));
|
| + ASCIIToUTF16("123")));
|
| int result = 0;
|
| if (!value->GetAsInteger(&result))
|
| EXPECT_EQ(base::Value::TYPE_NULL, value->GetType());
|
| @@ -1583,4 +1582,66 @@ INSTANTIATE_TEST_CASE_P(
|
| &RestoreOnStartupPolicyTest::NTP,
|
| &RestoreOnStartupPolicyTest::Last));
|
|
|
| +// Similar to PolicyTest but sets a couple of policies before the browser is
|
| +// started.
|
| +class PolicyStatisticsCollectorTest : public PolicyTest {
|
| + public:
|
| + PolicyStatisticsCollectorTest() {}
|
| + virtual ~PolicyStatisticsCollectorTest() {}
|
| +
|
| + virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
|
| + PolicyTest::SetUpInProcessBrowserTestFixture();
|
| + PolicyMap policies;
|
| + policies.Set(
|
| + key::kShowHomeButton, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
|
| + base::Value::CreateBooleanValue(true));
|
| + policies.Set(
|
| + key::kBookmarkBarEnabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
|
| + base::Value::CreateBooleanValue(false));
|
| + policies.Set(
|
| + key::kHomepageLocation, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
|
| + base::Value::CreateStringValue("http://chromium.org"));
|
| + provider_.UpdateChromePolicy(policies);
|
| + }
|
| +};
|
| +
|
| +IN_PROC_BROWSER_TEST_F(PolicyStatisticsCollectorTest, Startup) {
|
| + // Verifies that policy usage histograms are collected at startup.
|
| +
|
| + // BrowserPolicyConnector::Init() has already been called. Make sure the
|
| + // CompleteInitialization() task has executed as well.
|
| + content::RunAllPendingInMessageLoop();
|
| +
|
| + GURL kAboutHistograms = GURL(std::string(chrome::kAboutScheme) +
|
| + std::string(content::kStandardSchemeSeparator) +
|
| + std::string(chrome::kChromeUIHistogramHost));
|
| + ui_test_utils::NavigateToURL(browser(), kAboutHistograms);
|
| + content::WebContents* contents = chrome::GetActiveWebContents(browser());
|
| + std::string text;
|
| + ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString(
|
| + contents->GetRenderViewHost(),
|
| + std::wstring(),
|
| + L"var nodes = document.querySelectorAll('body > pre');"
|
| + L"var result = '';"
|
| + L"for (var i = 0; i < nodes.length; ++i) {"
|
| + L" var text = nodes[i].innerHTML;"
|
| + L" if (text.indexOf('Histogram: Enterprise.Policies') === 0) {"
|
| + L" result = text;"
|
| + L" break;"
|
| + L" }"
|
| + L"}"
|
| + L"domAutomationController.send(result);",
|
| + &text));
|
| + ASSERT_FALSE(text.empty());
|
| + const std::string kExpectedLabel =
|
| + "Histogram: Enterprise.Policies recorded 3 samples";
|
| + EXPECT_EQ(kExpectedLabel, text.substr(0, kExpectedLabel.size()));
|
| + // HomepageLocation has policy ID 1.
|
| + EXPECT_NE(std::string::npos, text.find("<br>1 ---"));
|
| + // ShowHomeButton has policy ID 35.
|
| + EXPECT_NE(std::string::npos, text.find("<br>35 ---"));
|
| + // BookmarkBarEnabled has policy ID 82.
|
| + EXPECT_NE(std::string::npos, text.find("<br>82 ---"));
|
| +}
|
| +
|
| } // namespace policy
|
|
|