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

Unified Diff: chrome/browser/chrome_origin_trials_browsertest.cc

Issue 2733023002: [Origin Trials] Support updates of disabled token list (Closed)
Patch Set: Rebase Created 3 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: chrome/browser/chrome_origin_trials_browsertest.cc
diff --git a/chrome/browser/chrome_origin_trials_browsertest.cc b/chrome/browser/chrome_origin_trials_browsertest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..315e262b4f0c0615ba955e025d50e19d0817f27d
--- /dev/null
+++ b/chrome/browser/chrome_origin_trials_browsertest.cc
@@ -0,0 +1,254 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// 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 "build/build_config.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/common/chrome_switches.h"
+#include "chrome/common/pref_names.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "chrome/test/base/testing_browser_process.h"
+#include "components/prefs/scoped_user_pref_update.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace {
+
+static const char kNewPublicKey[] = "new public key";
+
+static const std::vector<std::string> kOneDisabledFeatureList = {"A"};
+static const std::vector<std::string> kTwoDisabledFeaturesList = {"A", "B"};
+static const std::vector<std::string> kThreeDisabledFeaturesList = {"A", "B",
+ "C"};
+static const std::vector<std::string> kSpacesInDisabledFeaturesList = {"A",
+ "B C"};
+static const char kOneDisabledFeatureSwitch[] = "A";
+static const char kTwoDisabledFeaturesSwitch[] = "A|B";
+static const char kThreeDisabledFeaturesSwitch[] = "A|B|C";
+static const char kSpacesInDisabledFeaturesSwitch[] = "A|B C";
+
+static const std::vector<std::string> kOneDisabledTokenList = {"t1"};
+static const std::vector<std::string> kTwoDisabledTokensList = {"t1", "t2"};
+static const std::vector<std::string> kThreeDisabledTokensList = {"t1", "t2",
+ "t3"};
+static const char kOneDisabledTokenSwitch[] = "t1";
+static const char kTwoDisabledTokensSwitch[] = "t1|t2";
+static const char kThreeDisabledTokensSwitch[] = "t1|t2|t3";
+
+class ChromeOriginTrialsTest : public InProcessBrowserTest {
+ protected:
+ ChromeOriginTrialsTest() {}
+
+ void AddDisabledFeaturesToPrefs(const std::vector<std::string>& features) {
+ base::ListValue disabled_feature_list;
+ disabled_feature_list.AppendStrings(features);
+ ListPrefUpdate update(local_state(), prefs::kOriginTrialDisabledFeatures);
+ update->Swap(&disabled_feature_list);
+ }
+
+ void AddDisabledTokensToPrefs(const std::vector<std::string>& tokens) {
+ base::ListValue disabled_token_list;
+ disabled_token_list.AppendStrings(tokens);
+ ListPrefUpdate update(local_state(), prefs::kOriginTrialDisabledTokens);
+ update->Swap(&disabled_token_list);
+ }
+
+ PrefService* local_state() { return g_browser_process->local_state(); }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ChromeOriginTrialsTest);
+};
+
+// Tests to verify that the public key is correctly read from prefs and
+// added to the command line
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest, NoPublicKeySet) {
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ EXPECT_FALSE(command_line->HasSwitch(switches::kOriginTrialPublicKey));
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest, PRE_PublicKeySetOnCommandLine) {
+ local_state()->Set(prefs::kOriginTrialPublicKey, base::Value(kNewPublicKey));
+ ASSERT_EQ(kNewPublicKey,
+ local_state()->GetString(prefs::kOriginTrialPublicKey));
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest, PublicKeySetOnCommandLine) {
+ ASSERT_EQ(kNewPublicKey,
+ local_state()->GetString(prefs::kOriginTrialPublicKey));
+
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+
+ EXPECT_TRUE(command_line->HasSwitch(switches::kOriginTrialPublicKey));
+
+ if (command_line->HasSwitch(switches::kOriginTrialPublicKey)) {
Marijn Kruisselbrink 2017/03/14 05:54:42 rather than having this if, would it make sense to
chasej 2017/03/14 20:00:08 I created a helper method GetCommandLineSwitch(),
+ std::string actual_key =
+ command_line->GetSwitchValueASCII(switches::kOriginTrialPublicKey);
+ EXPECT_EQ(kNewPublicKey, actual_key);
+ }
+}
+
+// Tests to verify that disabled features are correctly read from prefs and
+// added to the command line
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest, NoDisabledFeatures) {
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ EXPECT_FALSE(command_line->HasSwitch(switches::kOriginTrialDisabledFeatures));
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
+ PRE_OneDisabledFeatureSetOnCommandLine) {
+ AddDisabledFeaturesToPrefs(kOneDisabledFeatureList);
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledFeatures));
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
+ OneDisabledFeatureSetOnCommandLine) {
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledFeatures));
+
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+
+ EXPECT_TRUE(command_line->HasSwitch(switches::kOriginTrialDisabledFeatures));
+
+ if (command_line->HasSwitch(switches::kOriginTrialDisabledFeatures)) {
+ std::string switch_value = command_line->GetSwitchValueASCII(
+ switches::kOriginTrialDisabledFeatures);
+ EXPECT_EQ(kOneDisabledFeatureSwitch, switch_value);
+ }
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
Marijn Kruisselbrink 2017/03/14 05:54:42 Rather than having all these essentially identical
chasej 2017/03/14 20:00:08 Done. Thanks for the suggestion. I had to add sepa
+ PRE_TwoDisabledFeaturesSetOnCommandLine) {
+ AddDisabledFeaturesToPrefs(kTwoDisabledFeaturesList);
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledFeatures));
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
+ TwoDisabledFeaturesSetOnCommandLine) {
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledFeatures));
+
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+
+ EXPECT_TRUE(command_line->HasSwitch(switches::kOriginTrialDisabledFeatures));
+
+ if (command_line->HasSwitch(switches::kOriginTrialDisabledFeatures)) {
+ std::string switch_value = command_line->GetSwitchValueASCII(
+ switches::kOriginTrialDisabledFeatures);
+ EXPECT_EQ(kTwoDisabledFeaturesSwitch, switch_value);
+ }
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
+ PRE_ThreeDisabledFeaturesSetOnCommandLine) {
+ AddDisabledFeaturesToPrefs(kThreeDisabledFeaturesList);
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledFeatures));
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
+ ThreeDisabledFeaturesSetOnCommandLine) {
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledFeatures));
+
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+
+ EXPECT_TRUE(command_line->HasSwitch(switches::kOriginTrialDisabledFeatures));
+
+ if (command_line->HasSwitch(switches::kOriginTrialDisabledFeatures)) {
+ std::string switch_value = command_line->GetSwitchValueASCII(
+ switches::kOriginTrialDisabledFeatures);
+ EXPECT_EQ(kThreeDisabledFeaturesSwitch, switch_value);
+ }
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
+ PRE_SpacesInDisabledFeaturesSetOnCommandLine) {
+ AddDisabledFeaturesToPrefs(kSpacesInDisabledFeaturesList);
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledFeatures));
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
+ SpacesInDisabledFeaturesSetOnCommandLine) {
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledFeatures));
+
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+
+ EXPECT_TRUE(command_line->HasSwitch(switches::kOriginTrialDisabledFeatures));
+
+ if (command_line->HasSwitch(switches::kOriginTrialDisabledFeatures)) {
+ std::string switch_value = command_line->GetSwitchValueASCII(
+ switches::kOriginTrialDisabledFeatures);
+ EXPECT_EQ(kSpacesInDisabledFeaturesSwitch, switch_value);
+ }
+}
+
+// Tests to verify that disabled tokens are correctly read from prefs and
+// added to the command line
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest, NoDisabledTokens) {
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ EXPECT_FALSE(command_line->HasSwitch(switches::kOriginTrialDisabledTokens));
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
+ PRE_OneDisabledTokenSetOnCommandLine) {
+ AddDisabledTokensToPrefs(kOneDisabledTokenList);
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledTokens));
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
+ OneDisabledTokenSetOnCommandLine) {
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledTokens));
+
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+
+ EXPECT_TRUE(command_line->HasSwitch(switches::kOriginTrialDisabledTokens));
+
+ if (command_line->HasSwitch(switches::kOriginTrialDisabledTokens)) {
+ std::string switch_value =
+ command_line->GetSwitchValueASCII(switches::kOriginTrialDisabledTokens);
+ EXPECT_EQ(kOneDisabledTokenSwitch, switch_value);
+ }
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
+ PRE_TwoDisabledTokensSetOnCommandLine) {
+ AddDisabledTokensToPrefs(kTwoDisabledTokensList);
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledTokens));
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
+ TwoDisabledTokensSetOnCommandLine) {
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledTokens));
+
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+
+ EXPECT_TRUE(command_line->HasSwitch(switches::kOriginTrialDisabledTokens));
+
+ if (command_line->HasSwitch(switches::kOriginTrialDisabledTokens)) {
+ std::string switch_value =
+ command_line->GetSwitchValueASCII(switches::kOriginTrialDisabledTokens);
+ EXPECT_EQ(kTwoDisabledTokensSwitch, switch_value);
+ }
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
+ PRE_ThreeDisabledTokensSetOnCommandLine) {
+ AddDisabledTokensToPrefs(kThreeDisabledTokensList);
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledTokens));
+}
+
+IN_PROC_BROWSER_TEST_F(ChromeOriginTrialsTest,
+ ThreeDisabledTokensSetOnCommandLine) {
+ ASSERT_TRUE(local_state()->HasPrefPath(prefs::kOriginTrialDisabledTokens));
+
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+
+ EXPECT_TRUE(command_line->HasSwitch(switches::kOriginTrialDisabledTokens));
+
+ if (command_line->HasSwitch(switches::kOriginTrialDisabledTokens)) {
+ std::string switch_value =
+ command_line->GetSwitchValueASCII(switches::kOriginTrialDisabledTokens);
+ EXPECT_EQ(kThreeDisabledTokensSwitch, switch_value);
+ }
+}
+
+} // namespace
« no previous file with comments | « chrome/browser/chrome_content_browser_client.cc ('k') | chrome/browser/component_updater/origin_trials_component_installer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698