• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2022 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 package org.chromium.url;
6 
7 import androidx.test.filters.SmallTest;
8 
9 import org.junit.Assert;
10 import org.junit.Before;
11 import org.junit.Test;
12 import org.junit.runner.RunWith;
13 
14 import org.chromium.base.test.BaseJUnit4ClassRunner;
15 import org.chromium.base.test.util.Batch;
16 import org.chromium.content_public.browser.test.NativeLibraryTestUtils;
17 import org.chromium.mojo_base.mojom.UnguessableToken;
18 
19 /**
20  * Tests for {@link Origin}. Origin relies heavily on the native implementation, and the lion's
21  * share of the logic is tested there. This test is primarily to make sure everything is plumbed
22  * through correctly.
23  */
24 @RunWith(BaseJUnit4ClassRunner.class)
25 @Batch(Batch.UNIT_TESTS)
26 public class OriginJavaTest {
27     @Before
setUp()28     public void setUp() {
29         NativeLibraryTestUtils.loadNativeLibraryNoBrowserProcess();
30     }
31 
32     @SmallTest
33     @Test
testOriginEquivalence()34     public void testOriginEquivalence() {
35         OriginJavaTestHelper.testOriginEquivalence();
36     }
37 
38     @SmallTest
39     @Test
testCreateOpaqueOrigin()40     public void testCreateOpaqueOrigin() {
41         Origin opaque = Origin.createOpaqueOrigin();
42         Assert.assertTrue(opaque.isOpaque());
43         Assert.assertEquals("", opaque.getScheme());
44         Assert.assertEquals("", opaque.getHost());
45         Assert.assertEquals(0, opaque.getPort());
46     }
47 
48     @SmallTest
49     @Test
testNonOpaqueMojomConstructor()50     public void testNonOpaqueMojomConstructor() {
51         String scheme = "http";
52         String host = "host.name";
53         short port = 42;
54         org.chromium.url.internal.mojom.Origin mojom = new org.chromium.url.internal.mojom.Origin();
55         mojom.scheme = scheme;
56         mojom.host = host;
57         mojom.port = port;
58         Origin origin = new Origin(mojom);
59 
60         Assert.assertEquals(scheme, origin.getScheme());
61         Assert.assertEquals(host, origin.getHost());
62         Assert.assertEquals(port, origin.getPort());
63         Assert.assertFalse(origin.isOpaque());
64     }
65 
66     @SmallTest
67     @Test
testOpaqueMojomConstructor()68     public void testOpaqueMojomConstructor() {
69         String scheme = "http";
70         String host = "host.name";
71         short port = 42;
72         org.chromium.url.internal.mojom.Origin mojom = new org.chromium.url.internal.mojom.Origin();
73         mojom.scheme = scheme;
74         mojom.host = host;
75         mojom.port = port;
76         UnguessableToken token = new UnguessableToken();
77         token.high = 3;
78         token.low = 4;
79         mojom.nonceIfOpaque = token;
80 
81         Origin origin = new Origin(mojom);
82 
83         Assert.assertEquals("", origin.getScheme());
84         Assert.assertEquals("", origin.getHost());
85         Assert.assertEquals(0, origin.getPort());
86         Assert.assertTrue(origin.isOpaque());
87     }
88 
89     @SmallTest
90     @Test
testCreateFromGURL()91     public void testCreateFromGURL() {
92         GURL gurl = new GURL("https://host.name:61234/path");
93         Origin opaque = Origin.create(gurl);
94         Assert.assertFalse(opaque.isOpaque());
95         Assert.assertEquals("https", opaque.getScheme());
96         Assert.assertEquals("host.name", opaque.getHost());
97         Assert.assertEquals(61234, opaque.getPort());
98     }
99 }
100