1 // Copyright 2021 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "url/mojom/scheme_host_port_mojom_traits.h"
6
7 #include <string>
8
9 #include "mojo/public/cpp/test_support/test_utils.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "url/mojom/scheme_host_port.mojom.h"
12 #include "url/scheme_host_port.h"
13
14 namespace url {
15
16 namespace {
17
TestRoundTrip(const url::SchemeHostPort & in)18 void TestRoundTrip(const url::SchemeHostPort& in) {
19 url::SchemeHostPort result;
20 ASSERT_TRUE(
21 mojo::test::SerializeAndDeserialize<mojom::SchemeHostPort>(in, result))
22 << in.Serialize();
23 EXPECT_EQ(in, result) << "Expected " << in.Serialize() << ", but got "
24 << result.Serialize();
25 }
26
27 } // namespace
28
TEST(SchemeHostPortMojomTraitsTest,RoundTrip)29 TEST(SchemeHostPortMojomTraitsTest, RoundTrip) {
30 TestRoundTrip(url::SchemeHostPort());
31 TestRoundTrip(url::SchemeHostPort("http", "test", 80));
32 TestRoundTrip(url::SchemeHostPort("https", "foo.test", 443));
33 TestRoundTrip(url::SchemeHostPort("file", "", 0));
34 }
35
36 } // namespace url
37