blob: e0858a4ca31f591f192f49d24a41e36207a07862 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
package com.sun.star.lib.uno.helper;
public class UnoUrlTest {
private UnoUrlTest() {
}
private void fail(String msg) {
System.err.println(msg);
System.exit(1);
}
private static void log(String msg) {
System.out.println(msg);
}
private void assertTrue(boolean b) {
if (!b)
fail("boolean assertion failed");
}
private void assertEquals(String expected, String actual) {
if (!expected.equals(actual)) {
fail("Expected: '"+ expected + "' but was: '"+actual+"'");
}
}
private void assertEquals(int expected, int actual) {
if (expected != actual) {
fail("Expected: "+ expected + " but was: "+actual);
}
}
public void testStart1() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("uno:x;y;z");
assertTrue((url != null));
assertEquals("x", url.getConnection());
} catch (com.sun.star.lang.IllegalArgumentException e) {
fail("Caught exception:" + e.getMessage());
}
}
public void testStart2() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("uno1:x;y;z");
fail("Should throw an exception");
} catch (com.sun.star.lang.IllegalArgumentException e) {
}
}
public void testStart3() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("un:x;y;z");
fail("Should throw an exception");
} catch (com.sun.star.lang.IllegalArgumentException e) {
}
}
public void testStart4() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("x;y;z");
assertTrue((url != null));
assertEquals("y", url.getProtocol());
} catch (com.sun.star.lang.IllegalArgumentException e) {
fail("Caught exception:" + e.getMessage());
}
}
public void testParam1() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("uno:");
fail("Should throw an exception");
} catch (com.sun.star.lang.IllegalArgumentException e) {
}
}
public void testParam2() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("uno:a;");
fail("Should throw an exception");
} catch (com.sun.star.lang.IllegalArgumentException e) {
}
}
public void testPartName1() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("uno:abc!abc;b;c");
fail("Should throw an exception");
} catch (com.sun.star.lang.IllegalArgumentException e) {
}
}
public void testOID1() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("uno:x;y;ABC<ABC");
fail("Should throw an exception");
} catch (com.sun.star.lang.IllegalArgumentException e) {
}
}
public void testOIDandParams1() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("uno:x,key9=val9;y;ABC");
assertTrue((url != null));
assertEquals("ABC", url.getRootOid());
assertEquals(1, url.getConnectionParameters().size());
assertEquals("val9", (String)url.getConnectionParameters().get("key9"));
} catch (com.sun.star.lang.IllegalArgumentException e) {
fail(e.getMessage());
}
}
public void testOIDandParams2() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("uno:x,key1=val1,k2=v2;y,k3=v3;ABC()!/");
assertTrue((url != null));
assertEquals("ABC()!/", url.getRootOid());
assertEquals(2, url.getConnectionParameters().size());
assertEquals(1, url.getProtocolParameters().size());
} catch (com.sun.star.lang.IllegalArgumentException e) {
fail("Caught exception:" + e.getMessage());
}
}
public void testParams1() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("uno:x,abc!abc=val;y;ABC");
fail("Should throw an exception");
} catch (com.sun.star.lang.IllegalArgumentException e) {
}
}
public void testParams2() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("uno:x,abc=val<val;y;ABC");
fail("Should throw an exception");
} catch (com.sun.star.lang.IllegalArgumentException e) {
}
}
public void testParams3() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("uno:x,abc=val!()val;y;ABC");
assertTrue((url != null));
assertEquals(1, url.getConnectionParameters().size());
} catch (com.sun.star.lang.IllegalArgumentException e) {
fail("Caught exception:" + e.getMessage());
}
}
public void testCommon() {
try {
UnoUrl url =
UnoUrl.parseUnoUrl(
"socket,host=localhost,port=2002;urp;StarOffice.ServiceManager");
assertTrue((url != null));
assertEquals("StarOffice.ServiceManager", url.getRootOid());
assertEquals("socket", url.getConnection());
assertEquals("urp", url.getProtocol());
assertEquals("2002", (String)url.getConnectionParameters().get("port"));
} catch (com.sun.star.lang.IllegalArgumentException e) {
fail("Caught exception:" + e.getMessage());
}
}
public void testUTF() {
try {
UnoUrl url =
UnoUrl.parseUnoUrl(
"socket,host=localhost,horst=abc%c3%9c%c3%a4ABC%41%2c%2C,port=2002;urp;StarOffice.ServiceManager");
assertEquals("abcÜäABCA,,", (String)url.getConnectionParameters().get("horst"));
assertEquals(
"host=localhost,horst=abc%c3%9c%c3%a4ABC%41%2c%2C,port=2002",
url.getConnectionParametersAsString());
} catch (com.sun.star.lang.IllegalArgumentException e) {
fail("Caught exception:" + e.getMessage());
}
}
public void testUTF1() {
try {
UnoUrl url = UnoUrl.parseUnoUrl("uno:x,abc=val%4t;y;ABC");
fail("Should throw an exception");
} catch (com.sun.star.lang.IllegalArgumentException e) {
}
}
public static void main(String args[]) {
UnoUrlTest t = new UnoUrlTest();
log("Running test case 1");
t.testStart1();
log("Running test case 2");
t.testStart2();
log("Running test case 3");
t.testStart3();
log("Running test case 4");
t.testStart4();
log("Running test case 5");
t.testParam1();
log("Running test case 6");
t.testParam2();
log("Running test case 7");
t.testPartName1();
log("Running test case 8");
t.testOID1();
log("Running test case 9");
t.testOIDandParams1();
log("Running test case 10");
t.testOIDandParams2();
log("Running test case 11");
t.testParams1();
log("Running test case 12");
t.testParams2();
log("Running test case 13");
t.testParams3();
log("Running test case 14");
t.testCommon();
log("Running test case 15");
t.testUTF();
log("Running test case 16");
t.testUTF1();
}
}