diff -r 000000000000 -r 0bfcb6585290 vm/src/test/java/org/apidesign/vm4brwsr/ByteCodeToJavaScriptTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/ByteCodeToJavaScriptTest.java Tue Dec 04 09:16:53 2012 +0100 @@ -0,0 +1,55 @@ +/** + * Back 2 Browser Bytecode Translator + * Copyright (C) 2012 Jaroslav Tulach + * + * 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, version 2 of the License. + * + * 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. Look for COPYING file in the top folder. + * If not, see http://opensource.org/licenses/GPL-2.0. + */ +package org.apidesign.vm4brwsr; + +import static org.testng.Assert.*; +import org.testng.annotations.Test; + +/** + * + * @author Jaroslav Tulach + */ +public class ByteCodeToJavaScriptTest { + + public ByteCodeToJavaScriptTest() { + } + + @Test + public void findMethodNameManglesObjectsCorrectly() { + StringBuilder cnt = new StringBuilder(); + boolean[] hasReturn = { false }; + String ret = ByteCodeToJavaScript.findMethodName(new String[] { + "StringTest", "replace", "(Ljava/lang/String;CC)Ljava/lang/String;" + }, cnt, hasReturn); + assertEquals(cnt.toString(), "000", "No doubles or longs"); + assertTrue(hasReturn[0], "Returns string"); + assertEquals(ret, "replace__Ljava_lang_String_2Ljava_lang_String_2CC"); + } + + @Test + public void manglingArrays() { + StringBuilder cnt = new StringBuilder(); + boolean[] hasReturn = { false }; + String ret = ByteCodeToJavaScript.findMethodName(new String[] { + "VMinVM", "toJavaScript", "([B)Ljava/lang/String;" + }, cnt, hasReturn); + assertEquals(cnt.toString(), "0", "No doubles or longs"); + assertTrue(hasReturn[0], "Returns string"); + assertEquals(ret, "toJavaScript__Ljava_lang_String_2_3B"); + } +}