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 package org.chromium.url; 6 7 import org.junit.Assert; 8 import org.junit.Test; 9 import org.junit.runner.RunWith; 10 import org.robolectric.annotation.Config; 11 12 import org.chromium.base.test.BaseRobolectricTestRunner; 13 14 /** Tests of {@link ShadowGURL}. */ 15 @RunWith(BaseRobolectricTestRunner.class) 16 @Config(shadows = {ShadowGURL.class}) 17 public class ShadowGURLTest { deepAssertEquals(GURL expected, GURL actual)18 /* package */ static void deepAssertEquals(GURL expected, GURL actual) { 19 Assert.assertEquals(expected, actual); 20 Assert.assertEquals(expected.getScheme(), actual.getScheme()); 21 Assert.assertEquals(expected.getUsername(), actual.getUsername()); 22 Assert.assertEquals(expected.getPassword(), actual.getPassword()); 23 Assert.assertEquals(expected.getHost(), actual.getHost()); 24 Assert.assertEquals(expected.getPort(), actual.getPort()); 25 Assert.assertEquals(expected.getPath(), actual.getPath()); 26 Assert.assertEquals(expected.getQuery(), actual.getQuery()); 27 Assert.assertEquals(expected.getRef(), actual.getRef()); 28 } 29 30 @Test testComponents()31 public void testComponents() { 32 GURL url = new GURL(JUnitTestGURLs.SEARCH_URL); 33 Assert.assertFalse(url.isEmpty()); 34 Assert.assertTrue(url.isValid()); 35 36 Assert.assertEquals(JUnitTestGURLs.SEARCH_URL, url.getSpec()); 37 Assert.assertEquals("https", url.getScheme()); 38 Assert.assertEquals("", url.getUsername()); 39 Assert.assertEquals("", url.getPassword()); 40 Assert.assertEquals("www.google.com", url.getHost()); 41 Assert.assertEquals("", url.getPort()); 42 Assert.assertEquals("/search", url.getPath()); 43 Assert.assertEquals("q=test", url.getQuery()); 44 Assert.assertEquals("", url.getRef()); 45 } 46 47 @Test testEmpty()48 public void testEmpty() { 49 GURL url = new GURL(""); 50 Assert.assertFalse(url.isValid()); 51 52 Assert.assertEquals("", url.getSpec()); 53 Assert.assertEquals("", url.getScheme()); 54 Assert.assertEquals("", url.getUsername()); 55 Assert.assertEquals("", url.getPassword()); 56 Assert.assertEquals("", url.getHost()); 57 Assert.assertEquals("", url.getPort()); 58 Assert.assertEquals("", url.getPath()); 59 Assert.assertEquals("", url.getQuery()); 60 Assert.assertEquals("", url.getRef()); 61 } 62 63 @Test testSerialization()64 public void testSerialization() { 65 GURL gurl = new GURL(JUnitTestGURLs.URL_1_WITH_PATH); 66 GURL deserialized = GURL.deserialize(gurl.serialize()); 67 68 deepAssertEquals(deserialized, gurl); 69 } 70 } 71