url_pattern_set_mojom_traits_unittest.cc 2.4 KB

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