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

Unified Diff: chrome/browser/omnibox/omnibox_field_trial_unittest.cc

Issue 22698002: Omnibox: Allow Bundled Omnibox Field Trial to Examine Instant Extended (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix tests broken after rebase Created 7 years, 4 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/omnibox/omnibox_field_trial_unittest.cc
diff --git a/chrome/browser/omnibox/omnibox_field_trial_unittest.cc b/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
index 1d49801b5a7dd5dcdae8d04a90651ce6fa74f50d..7f4824758298d32d4718b61b061b2330f2bc9a50 100644
--- a/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
+++ b/chrome/browser/omnibox/omnibox_field_trial_unittest.cc
@@ -5,9 +5,12 @@
#include "chrome/browser/omnibox/omnibox_field_trial.h"
#include "base/basictypes.h"
+#include "base/command_line.h"
#include "base/memory/scoped_ptr.h"
#include "base/metrics/field_trial.h"
#include "base/strings/string16.h"
+#include "chrome/browser/search/search.h"
+#include "chrome/common/chrome_switches.h"
#include "chrome/common/metrics/entropy_provider.h"
#include "chrome/common/metrics/variations/variations_util.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -147,9 +150,9 @@ TEST_F(OmniboxFieldTrialTest, GetDemotionsByTypeWithFallback) {
const std::string kRuleName = "DemoteByType";
{
std::map<std::string, std::string> params;
- params[kRuleName + ":1"] = "1:50,2:0";
- params[kRuleName + ":3"] = "5:100";
- params[kRuleName + ":*"] = "1:25";
+ params[kRuleName + ":1:*"] = "1:50,2:0";
+ params[kRuleName + ":3:*"] = "5:100";
+ params[kRuleName + ":*:*"] = "1:25";
ASSERT_TRUE(chrome_variations::AssociateVariationParams(
kTrialName, "A", params));
}
@@ -171,19 +174,29 @@ TEST_F(OmniboxFieldTrialTest, GetDemotionsByTypeWithFallback) {
}
TEST_F(OmniboxFieldTrialTest, GetValueForRuleInContext) {
+ // This test starts with Instant Extended off (the default state), then
+ // enables Instant Extended and tests again on the same rules.
+
// Must be the same as kBundledExperimentFieldTrialName
// defined in omnibox_field_trial.cc.
const std::string kTrialName = "OmniboxBundledExperimentV1";
{
std::map<std::string, std::string> params;
- // Rule 1 has some exact matches and a global fallback.
- params["rule1:1"] = "rule1-1-value"; // NEW_TAB_PAGE
- params["rule1:3"] = "rule1-3-value"; // HOMEPAGE
- params["rule1:*"] = "rule1-*-value"; // global
- // Rule 2 has no exact matches but has a global fallback.
- params["rule2:*"] = "rule2-*-value"; // global
- // Rule 3 has an exact match but no global fallback.
- params["rule3:4"] = "rule3-4-value"; // OTHER
+ // Rule 1 has some exact matches and fallbacks at every level.
+ params["rule1:1:0"] = "rule1-1-0-value"; // NEW_TAB_PAGE
+ params["rule1:3:0"] = "rule1-3-0-value"; // HOMEPAGE
+ params["rule1:4:1"] = "rule1-4-1-value"; // OTHER
+ params["rule1:4:*"] = "rule1-4-*-value"; // OTHER
+ params["rule1:*:1"] = "rule1-*-1-value"; // global
+ params["rule1:*:*"] = "rule1-*-*-value"; // global
+ // Rule 2 has no exact matches but has fallbacks.
+ params["rule2:*:0"] = "rule2-*-0-value"; // global
+ params["rule2:1:*"] = "rule2-1-*-value"; // NEW_TAB_PAGE
+ params["rule2:*:*"] = "rule2-*-*-value"; // global
+ // Rule 3 has only a global fallback.
+ params["rule3:*:*"] = "rule3-*-*-value"; // global
+ // Rule 4 has an exact match but no fallbacks.
+ params["rule4:4:0"] = "rule4-4-0-value"; // OTHER
// Add a malformed rule to make sure it doesn't screw things up.
params["unrecognized"] = "unrecognized-value";
ASSERT_TRUE(chrome_variations::AssociateVariationParams(
@@ -192,51 +205,122 @@ TEST_F(OmniboxFieldTrialTest, GetValueForRuleInContext) {
base::FieldTrialList::CreateFieldTrial(kTrialName, "A");
+ // Tests for Instant Extended is off.
Peter Kasting 2013/08/09 20:45:45 Nit: "Tests with Instant Extended disabled."?
Mark P 2013/08/09 21:55:01 Done.
// Tests for rule 1.
EXPECT_EQ(
- "rule1-1-value",
+ "rule1-1-0-value",
OmniboxFieldTrial::GetValueForRuleInContext(
Peter Kasting 2013/08/09 20:45:45 Nit: It might be possible to condense this test ca
Mark P 2013/08/09 21:55:01 I wasn't sure either, but I went and tried it and
"rule1", AutocompleteInput::NEW_TAB_PAGE)); // exact match
Peter Kasting 2013/08/09 20:45:45 Nit: In principle, it would be nice if all these E
Mark P 2013/08/09 21:55:01 Done.
EXPECT_EQ(
- "rule1-*-value",
+ "rule1-*-*-value",
OmniboxFieldTrial::GetValueForRuleInContext(
- "rule1", AutocompleteInput::BLANK)); // fallback to global
+ "rule1", AutocompleteInput::BLANK)); // fallback to global
EXPECT_EQ(
- "rule1-3-value",
+ "rule1-3-0-value",
OmniboxFieldTrial::GetValueForRuleInContext(
"rule1", AutocompleteInput::HOMEPAGE)); // exact match
EXPECT_EQ(
- "rule1-*-value",
+ "rule1-4-*-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule1", AutocompleteInput::OTHER)); // partial fallback
+ EXPECT_EQ(
+ "rule1-*-*-value",
OmniboxFieldTrial::GetValueForRuleInContext(
- "rule1", AutocompleteInput::OTHER)); // fallback to global
+ "rule1", // fallback to global
+ AutocompleteInput::SEARCH_RESULT_PAGE_DOING_SEARCH_TERM_REPLACEMENT));
// Tests for rule 2.
EXPECT_EQ(
- "rule2-*-value",
+ "rule2-*-0-value",
OmniboxFieldTrial::GetValueForRuleInContext(
- "rule2", AutocompleteInput::HOMEPAGE)); // fallback to global
+ "rule2", AutocompleteInput::HOMEPAGE)); // partial fallback
EXPECT_EQ(
- "rule2-*-value",
+ "rule2-*-0-value",
OmniboxFieldTrial::GetValueForRuleInContext(
- "rule2", AutocompleteInput::OTHER)); // fallback to global
+ "rule2", AutocompleteInput::OTHER)); // partial fallback
// Tests for rule 3.
EXPECT_EQ(
+ "rule3-*-*-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule3", AutocompleteInput::HOMEPAGE)); // fallback to global
+ EXPECT_EQ(
+ "rule3-*-*-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule3", AutocompleteInput::OTHER)); // fallback to global
+
+ // Tests for rule 4.
+ EXPECT_EQ(
+ "",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule4", AutocompleteInput::BLANK)); // no global fallback
+ EXPECT_EQ(
+ "",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule4", AutocompleteInput::HOMEPAGE)); // no global fallback
+ EXPECT_EQ(
+ "rule4-4-0-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule4", AutocompleteInput::OTHER)); // exact match
+
+ // Tests for rule 5 (a missing rule).
+ EXPECT_EQ(
"",
OmniboxFieldTrial::GetValueForRuleInContext(
- "rule3", AutocompleteInput::BLANK)); // no global fallback
+ "rule5", AutocompleteInput::OTHER)); // no rule at all
+
+ // Now change the Instant Extended state and run analogous tests.
+ chrome::ResetInstantExtendedOptInStateGateForTest();
+ CommandLine::ForCurrentProcess()->AppendSwitch(
+ switches::kEnableInstantExtendedAPI);
+
+ // Tests for rule 1.
+ EXPECT_EQ(
+ "rule1-4-1-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule1", AutocompleteInput::OTHER)); // exact match
+ EXPECT_EQ(
+ "rule1-*-1-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule1", AutocompleteInput::BLANK)); // partial fallback
+ EXPECT_EQ(
+ "rule1-*-1-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule1", AutocompleteInput::NEW_TAB_PAGE)); // partial fallback
+
+ // Tests for rule 2.
+ EXPECT_EQ(
+ "rule2-1-*-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule2", AutocompleteInput::NEW_TAB_PAGE)); // partial fallback
+ EXPECT_EQ(
+ "rule2-*-*-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule2", AutocompleteInput::OTHER)); // global fallback
+
+ // Tests for rule 3.
+ EXPECT_EQ(
+ "rule3-*-*-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule3", AutocompleteInput::HOMEPAGE)); // global fallback
+ EXPECT_EQ(
+ "rule3-*-*-value",
+ OmniboxFieldTrial::GetValueForRuleInContext(
+ "rule3", AutocompleteInput::OTHER)); // global fallback
+
+ // Tests for rule 4.
EXPECT_EQ(
"",
OmniboxFieldTrial::GetValueForRuleInContext(
- "rule3", AutocompleteInput::HOMEPAGE)); // no global fallback
+ "rule4", AutocompleteInput::BLANK)); // no global fallback
EXPECT_EQ(
- "rule3-4-value",
+ "",
OmniboxFieldTrial::GetValueForRuleInContext(
- "rule3", AutocompleteInput::OTHER)); // exact match
+ "rule4", AutocompleteInput::HOMEPAGE)); // no global fallback
- // Tests for rule 4 (a missing rule).
+ // Tests for rule 5 (a missing rule).
EXPECT_EQ(
"",
OmniboxFieldTrial::GetValueForRuleInContext(
- "rule4", AutocompleteInput::OTHER)); // no rule at all
+ "rule5", AutocompleteInput::OTHER)); // no rule at all
}

Powered by Google App Engine
This is Rietveld 408576698