You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
4.1 KiB
93 lines
4.1 KiB
7 years ago
|
// migrationTest.java
|
||
|
// Copyright 2017 by luccioman; https://github.com/luccioman
|
||
|
//
|
||
|
// This is a part of YaCy, a peer-to-peer based web search engine
|
||
|
//
|
||
|
// LICENSE
|
||
|
//
|
||
|
// This program is free software; you can redistribute it and/or modify
|
||
|
// it under the terms of the GNU General Public License as published by
|
||
|
// the Free Software Foundation; either version 2 of the License, or
|
||
|
// (at your option) any later version.
|
||
|
//
|
||
|
// This program is distributed in the hope that it will be useful,
|
||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
// GNU General Public License for more details.
|
||
|
//
|
||
|
// You should have received a copy of the GNU General Public License
|
||
|
// along with this program; if not, write to the Free Software
|
||
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
|
||
|
package net.yacy;
|
||
|
|
||
|
import java.util.HashMap;
|
||
|
import java.util.Map;
|
||
|
import java.util.Map.Entry;
|
||
|
|
||
|
import org.junit.Assert;
|
||
|
import org.junit.Test;
|
||
|
|
||
|
/**
|
||
|
* Unit tests for the {@link migration} class.
|
||
|
*/
|
||
|
public class migrationTest {
|
||
|
|
||
|
/**
|
||
|
* Testing the conversion of IP addresses patterns
|
||
|
*/
|
||
|
@Test
|
||
|
public void testMigrateIPAddressPatterns() {
|
||
|
final String patternSeparator = ",";
|
||
|
final String[] nonDeprecatedPatterns = { "*", // match all (default)
|
||
|
"10.10.1.2,2001:db8::ff00:42:8329", // single IPv4 and IPv6 addresses
|
||
|
"10.10.1.2|/foo/bar,2001:db8::ff00:42:8329|/foo/bar", // single IPv4 and IPv6 addresses with path
|
||
|
"192.168.1.1-192.168.1.10,2001:db8::ff00:42:8330-2001:db8::ff00:42:83ff", // IPv4 and IPv6 addresses
|
||
|
// ranges
|
||
|
"192.168.1.1-192.168.1.10|/path,2001:db8::ff00:42:8330-2001:db8::ff00:42:83ff|/path", // IPv4 and IPv6 addresses ranges with path
|
||
|
"127.0.0.1/8,192.168.1.0/24,2001:db8::aaaa:0:0/96,::1/128", // IPv4 and IPv6 addresses ranges defined using CIDR notation
|
||
|
"127.0.0.1/8|*.html,192.168.1.0/24|/foo/bar,2001:db8::aaaa:0:0/96|/foo/bar,::1/128|*.html", // IPv4 and IPv6 addresses ranges defined using CIDR notation with path
|
||
|
"192.168.3.0-255", // legacy IPv4 addresses range format
|
||
|
"192.168.3.0-255|/foo/bar,192.168.1.0-255|*.html", // legacy IPv4 addresses range format with path
|
||
|
};
|
||
|
final StringBuilder migrated = new StringBuilder();
|
||
|
for (final String patterns : nonDeprecatedPatterns) {
|
||
|
migrated.setLength(0);
|
||
|
Assert.assertFalse("Should not be detected as deprecated : " + patterns,
|
||
|
migration.migrateIPAddressPatterns(patternSeparator, patterns, migrated));
|
||
|
Assert.assertEquals(patterns, migrated.toString());
|
||
|
}
|
||
|
|
||
|
final Map<String, String> deprecatedToMigrated = new HashMap<>();
|
||
|
/* old IPv4 wildcard notation */
|
||
|
deprecatedToMigrated.put("127.", "127.0.0.0-127.255.255.255");
|
||
|
|
||
|
/* old IPv4 wildcard notation */
|
||
|
deprecatedToMigrated.put("192.168.", "192.168.0.0-192.168.255.255");
|
||
|
|
||
|
/* old IPv4 wildcard notation */
|
||
|
deprecatedToMigrated.put("192.168.1.", "192.168.1.0-192.168.1.255");
|
||
|
|
||
|
/* IPV4 address and old style path pattern */
|
||
|
deprecatedToMigrated.put("192.168.1.1/foo/bar,127.0.0.1/*.txt", "192.168.1.1|/foo/bar,127.0.0.1|*.txt");
|
||
|
|
||
|
/* old IPv4 wildcard notation and old style path pattern */
|
||
|
deprecatedToMigrated.put("192.168./foo/bar,127./*.txt", "192.168.0.0-192.168.255.255|/foo/bar,127.0.0.0-127.255.255.255|*.txt");
|
||
|
|
||
|
/* old IPv4 wildcard notation and new style path pattern */
|
||
|
deprecatedToMigrated.put("192.168.|/foo/bar,127.|*.txt", "192.168.0.0-192.168.255.255|/foo/bar,127.0.0.0-127.255.255.255|*.txt");
|
||
|
|
||
|
/* mixed deprecated and non deprecated patterns */
|
||
|
deprecatedToMigrated.put("10.10.1.2,2001:db8::ff00:42:8329|/foo/bar,192.168.|/foo/bar,192.168.1.0/24,127.|*.txt",
|
||
|
"10.10.1.2,2001:db8::ff00:42:8329|/foo/bar,192.168.0.0-192.168.255.255|/foo/bar,192.168.1.0/24,127.0.0.0-127.255.255.255|*.txt");
|
||
|
|
||
|
for (final Entry<String, String> entry : deprecatedToMigrated.entrySet()) {
|
||
|
migrated.setLength(0);
|
||
|
Assert.assertTrue("Should be detected as deprecated : " + entry.getKey(),
|
||
|
migration.migrateIPAddressPatterns(patternSeparator, entry.getKey(), migrated));
|
||
|
Assert.assertEquals(entry.getValue(), migrated.toString());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|