blob: 05f0d1af9d075417a0b9e925320da95279384f59 [file] [log] [blame]
// Copyright 2015 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 "net/base/stale_while_revalidate_experiment_domains.h"
#include <iosfwd>
#include "testing/gtest/include/gtest/gtest.h"
namespace net {
namespace {
using ::testing::TestWithParam;
using ::testing::ValuesIn;
const struct Expectation {
const char* host;
bool result;
} kExpectations[] = {
{"wordpress.com", true},
{"issuu.com", true},
{"wordpress.com.", true},
{"www.wordpress.com", true},
{"www.wordpress.com.", true},
{"a.b.wordpress.com", true},
{"a.b.c.d.wordpress.com", true},
{"www..wordpress.com", true},
{"www.wordpress..com", false},
{"a-b-wordpress.com", false},
{"com", false},
{".", false},
{"", false},
{"..", false},
{"ordpress.com", false},
{"wordpress.co", false},
{"a", false},
{"a.b", false},
{"a.b.c", false},
{"a.b.c.d.e", false},
};
void PrintTo(const Expectation& expectation, std::ostream* os) {
*os << "{\"" << expectation.host << "\" ," << std::boolalpha
<< expectation.result << "}";
}
class MatchTest : public TestWithParam<Expectation> {};
TEST_P(MatchTest, CheckExpectation) {
const Expectation& expectation = GetParam();
EXPECT_EQ(expectation.result,
IsHostInStaleWhileRevalidateExperimentDomain(expectation.host));
}
INSTANTIATE_TEST_CASE_P(StaleWhileRevalidateExperimentDomainsTest,
MatchTest,
ValuesIn(kExpectations));
} // namespace
} // namespace net