1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "extensions/common/mojom/url_pattern_set_mojom_traits.h"
#include "extensions/common/mojom/url_pattern_set.mojom.h"
#include "extensions/common/url_pattern.h"
#include "extensions/common/url_pattern_set.h"
#include "mojo/public/cpp/test_support/test_utils.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
using mojo::test::SerializeAndDeserialize;
TEST(URLPatternSetMojomTraitsTest, BasicURLPattern) {
URLPattern input(URLPattern::SCHEME_HTTP);
EXPECT_EQ(URLPattern::ParseResult::kSuccess,
input.Parse("http://*.foo:1234/bar"))
<< "Got unexpected error in the URLPattern parsing";
URLPattern output;
EXPECT_TRUE(
SerializeAndDeserialize<extensions::mojom::URLPattern>(input, output));
EXPECT_EQ(input, output);
EXPECT_EQ(input.valid_schemes(), output.valid_schemes());
EXPECT_EQ(input.scheme(), output.scheme());
EXPECT_EQ(input.host(), output.host());
EXPECT_EQ(input.port(), output.port());
EXPECT_EQ(input.path(), output.path());
EXPECT_EQ(input.match_all_urls(), output.match_all_urls());
EXPECT_EQ(input.match_subdomains(), output.match_subdomains());
EXPECT_EQ(input.GetAsString(), output.GetAsString());
}
TEST(URLPatternSetMojomTraitsTest, EmptyURLPatternSet) {
extensions::URLPatternSet input;
extensions::URLPatternSet output;
EXPECT_TRUE(
SerializeAndDeserialize<extensions::mojom::URLPatternSet>(input, output));
EXPECT_TRUE(output.is_empty());
}
TEST(URLPatternSetMojomTraitsTest, BasicURLPatternSet) {
URLPattern pattern1(URLPattern::SCHEME_ALL);
EXPECT_EQ(URLPattern::ParseResult::kSuccess,
pattern1.Parse("http://*.foo:1234/bar"))
<< "Got unexpected error in the URLPattern parsing";
URLPattern pattern2(URLPattern::SCHEME_HTTPS);
EXPECT_EQ(URLPattern::ParseResult::kSuccess,
pattern2.Parse("https://www.google.com/foobar"))
<< "Got unexpected error in the URLPattern parsing";
extensions::URLPatternSet input;
input.AddPattern(pattern1);
input.AddPattern(pattern2);
extensions::URLPatternSet output;
EXPECT_TRUE(
SerializeAndDeserialize<extensions::mojom::URLPatternSet>(input, output));
EXPECT_THAT(output.patterns(), testing::ElementsAre(pattern1, pattern2));
}
|