| Index: components/cronet/android/test/javatests/src/org/chromium/net/CronetUtilTest.java
|
| diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/CronetUtilTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUtilTest.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1fcb7b486f7ab07ae05cbf3867acf4e18b33c279
|
| --- /dev/null
|
| +++ b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUtilTest.java
|
| @@ -0,0 +1,83 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +package org.chromium.net;
|
| +
|
| +import android.test.suitebuilder.annotation.SmallTest;
|
| +
|
| +import org.chromium.base.test.util.Feature;
|
| +
|
| +/**
|
| + * Tests CronetUtil class.
|
| + */
|
| +public class CronetUtilTest extends CronetTestBase {
|
| + @SmallTest
|
| + @Feature({"Cronet"})
|
| + public void testHostNameValidation() throws Exception {
|
| + // Valid host names.
|
| + assertValidHostName("domain.com");
|
| + assertValidHostName("section4.domain.info");
|
| + assertValidHostName("44.domain44.info");
|
| + assertValidHostName("very.long.long.long.long.long.long.long.domain.com");
|
| + assertValidHostName("host");
|
| + assertValidHostName("новости.ру");
|
| + assertValidHostName("новости.ру");
|
| + assertValidHostName("самые-последние.новости.рус");
|
| + assertValidHostName("最新消息.中国");
|
| +
|
| + // Invalid host names.
|
| + assertInvalidHostName("domain.com:300");
|
| + assertInvalidHostName("http://domain.com");
|
| + assertInvalidHostName("domain.com:");
|
| + assertInvalidHostName("domain.com/");
|
| + assertInvalidHostName("новости.ру:");
|
| + assertInvalidHostName("новости.ру/");
|
| + assertInvalidHostName("FE80:0000:0000:0000:0202:B3FF:FE1E:8329");
|
| + assertInvalidHostName("[2001:db8:0:1]:80");
|
| + assertInvalidHostName("_http._sctp.www.example.com");
|
| + }
|
| +
|
| + @SmallTest
|
| + @Feature({"Cronet"})
|
| + public void testIPv4Validation() throws Exception {
|
| + // Valid IPv4 addresses.
|
| + assertValidIPv4("127.0.0.1");
|
| + assertValidIPv4("1.0.0.10");
|
| + assertValidIPv4("250.6.15.255");
|
| + assertValidIPv4("23.1.9.0");
|
| + assertValidIPv4("68.44.222.12");
|
| + // Invalid IPv4 addresses.
|
| + assertInvalidIPv4("domain.com");
|
| + assertInvalidIPv4("новости.ру");
|
| + assertInvalidIPv4("256.0.0.1");
|
| + assertInvalidIPv4("127.0.0.299");
|
| + assertInvalidIPv4("127.300.0.1");
|
| + assertInvalidIPv4("127.1.400.1");
|
| + assertInvalidIPv4("127.0.0.");
|
| + assertInvalidIPv4("127.0.0");
|
| + assertInvalidIPv4("127.0.0.a");
|
| + assertInvalidIPv4("127.0.0.1:80");
|
| + assertInvalidIPv4("127.0.0.1:80/");
|
| + assertInvalidIPv4("http://127.0.0.1:80");
|
| + }
|
| +
|
| + private void assertValidHostName(String hostName) {
|
| + boolean valid = CronetUtil.isValidHostName(hostName);
|
| + assertTrue(hostName + " should be a valid host name", valid);
|
| + }
|
| +
|
| + private void assertInvalidHostName(String hostName) {
|
| + boolean valid = CronetUtil.isValidHostName(hostName);
|
| + assertFalse(hostName + " should be an invalid host name", valid);
|
| + }
|
| +
|
| + private void assertValidIPv4(String addr) {
|
| + boolean valid = CronetUtil.isValidIPv4(addr);
|
| + assertTrue(addr + " should be a valid IPv4 address", valid);
|
| + }
|
| +
|
| + private void assertInvalidIPv4(String addr) {
|
| + boolean valid = CronetUtil.isValidIPv4(addr);
|
| + assertFalse(addr + " should be an invalid IPv4 address", valid);
|
| + }
|
| +}
|
|
|