private static void runEchoTests() { nsIEcho nativeEcho = (nsIEcho) Mozilla.getInstance() .getComponentManager() .createInstanceByContractID( "@mozilla.org/javaxpcom/tests/xpc;1", null, nsIEcho.NS_IECHO_IID); Object[][] tests = new Object[][] { /* test DOMString */ { "in2OutOneDOMString", new Object[] {testString}, testString, "in2OutOneDOMString w/ '" + testString + "'" }, { "in2OutOneDOMString", new Object[] {emptyString}, emptyString, "in2OutOneDomString w/ empty string" }, {"in2OutOneDOMString", new Object[] {null}, null, "in2OutOneDOMString w/ null value"}, /* test AString */ { "in2OutOneAString", new Object[] {testString}, testString, "in2OutOneAString w/ '" + testString + "'" }, { "in2OutOneAString", new Object[] {emptyString}, emptyString, "in2OutOneAString w/ empty string" }, { "in2OutOneAString", new Object[] {utf8String}, utf8String, "in2OutOneAString w/ '" + utf8String + "'" }, {"in2OutOneAString", new Object[] {null}, null, "in2OutOneAString w/ null value"}, /* test AUTF8String */ { "in2OutOneUTF8String", new Object[] {testString}, testString, "in2OutOneUTF8String w/ '" + testString + "'" }, { "in2OutOneUTF8String", new Object[] {emptyString}, emptyString, "in2OutOneUTF8String w/ empty string" }, { "in2OutOneUTF8String", new Object[] {utf8String}, utf8String, "in2OutOneUTF8String w/ '" + utf8String + "'" }, {"in2OutOneUTF8String", new Object[] {null}, null, "in2OutOneUTF8String w/ null value"}, /* test ACString */ { "in2OutOneCString", new Object[] {testString}, testString, "in2OutOneCString w/ '" + testString + "'" }, { "in2OutOneCString", new Object[] {emptyString}, emptyString, "in2OutOneCString w/ empty string" }, {"in2OutOneCString", new Object[] {null}, null, "in2OutOneCString w/ null value"}, /* test normal strings */ { "in2OutOneString", new Object[] {testString}, testString, "in2OutOneString w/ '" + testString + "'" }, { "in2OutOneString", new Object[] {emptyString}, emptyString, "in2OutOneString w/ empty string" } }; runTestsArray(nativeEcho, tests); do { Object result = null; boolean passed = false; String comment = "in2OutOneString w/ null value"; try { result = nativeEcho.in2OutOneString(null); passed = (result == null); } catch (Exception e) { // Calling nativeEcho.in2OutOneString(null) should throw an // exception, with errorcode == NS_ERROR_FAILURE. if (e instanceof XPCOMException && ((XPCOMException) e).errorcode == Mozilla.NS_ERROR_FAILURE) { passed = true; } if (!passed) { System.err.println("*** TEST " + comment + " threw exception:"); e.printStackTrace(); logResult(comment, false); continue; } } logResult(comment, passed); if (!passed) { System.err.println("*** TEST " + comment + " FAILED: expected null, returned " + result); } } while (false); tests = new Object[][] { {"setAString", new Object[] {testString}, null, "setAString w/ '" + testString + "'"}, {"getAString", null, testString, "getAString w/ '" + testString + "'"}, {"setAString", new Object[] {emptyString}, null, "setAString w/ empty string"}, {"getAString", null, emptyString, "getAString w/ empty string"}, {"setAString", new Object[] {null}, null, "setAString w/ null value"}, {"getAString", null, null, "getAString w/ null value"}, /* Is the 'shared' attribute even used in scriptable functions? { "sharedString", null, sharedString, null } */ }; runTestsArray(nativeEcho, tests); }
public String echoIn2OutOneUTF8String(String input) { if (receiver != null) { return receiver.echoIn2OutOneUTF8String(input); } return in2OutOneUTF8String(input); }
public void sendOneString(String str) { if (receiver != null) { receiver.sendOneString(str); } results[0] = str; }