jaroslav@296: /** jaroslav@296: * Back 2 Browser Bytecode Translator jaroslav@296: * Copyright (C) 2012 Jaroslav Tulach jaroslav@296: * jaroslav@296: * This program is free software: you can redistribute it and/or modify jaroslav@296: * it under the terms of the GNU General Public License as published by jaroslav@296: * the Free Software Foundation, version 2 of the License. jaroslav@296: * jaroslav@296: * This program is distributed in the hope that it will be useful, jaroslav@296: * but WITHOUT ANY WARRANTY; without even the implied warranty of jaroslav@296: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the jaroslav@296: * GNU General Public License for more details. jaroslav@296: * jaroslav@296: * You should have received a copy of the GNU General Public License jaroslav@296: * along with this program. Look for COPYING file in the top folder. jaroslav@296: * If not, see http://opensource.org/licenses/GPL-2.0. jaroslav@296: */ jaroslav@346: package org.apidesign.bck2brwsr.tck; jaroslav@296: jaroslav@339: import java.net.MalformedURLException; jaroslav@339: import java.net.URL; jaroslav@346: import org.apidesign.bck2brwsr.vmtest.Compare; jaroslav@346: import org.apidesign.bck2brwsr.vmtest.VMTest; jaroslav@296: import org.testng.annotations.Factory; jaroslav@296: jaroslav@296: /** jaroslav@296: * jaroslav@296: * @author Jaroslav Tulach jaroslav@296: */ jaroslav@296: public class CompareStringsTest { jaroslav@339: @Compare public static Object compareURLs() throws MalformedURLException { jaroslav@339: return new URL("http://apidesign.org:8080/wiki/").toExternalForm().toString(); jaroslav@339: } jaroslav@339: jaroslav@296: @Compare public String deleteLastTwoCharacters() { jaroslav@296: StringBuilder sb = new StringBuilder(); jaroslav@296: sb.append("453.0"); jaroslav@296: if (sb.toString().endsWith(".0")) { jaroslav@296: final int l = sb.length(); jaroslav@296: sb.delete(l - 2, l); jaroslav@296: } jaroslav@296: return sb.toString().toString(); jaroslav@296: } jaroslav@296: jaroslav@321: @Compare public String nameOfStringClass() throws Exception { jaroslav@321: return Class.forName("java.lang.String").getName(); jaroslav@321: } jaroslav@322: @Compare public String nameOfArrayClass() throws Exception { jaroslav@346: return Class.forName("org.apidesign.bck2brwsr.tck.CompareHashTest").getName(); jaroslav@322: } jaroslav@326: jaroslav@326: @Compare public String lowerHello() { jaroslav@326: return "HeLlO".toLowerCase(); jaroslav@326: } jaroslav@326: jaroslav@326: @Compare public String lowerA() { jaroslav@326: return String.valueOf(Character.toLowerCase('A')).toString(); jaroslav@326: } jaroslav@326: @Compare public String upperHello() { jaroslav@326: return "hello".toUpperCase(); jaroslav@326: } jaroslav@326: jaroslav@326: @Compare public String upperA() { jaroslav@326: return String.valueOf(Character.toUpperCase('a')).toString(); jaroslav@326: } jaroslav@326: jaroslav@326: @Compare public boolean matchRegExp() throws Exception { jaroslav@326: return "58038503".matches("\\d*"); jaroslav@326: } jaroslav@326: jaroslav@326: @Compare public boolean doesNotMatchRegExp() throws Exception { jaroslav@326: return "58038503GH".matches("\\d*"); jaroslav@326: } jaroslav@326: jaroslav@326: @Compare public boolean doesNotMatchRegExpFully() throws Exception { jaroslav@326: return "Hello".matches("Hell"); jaroslav@326: } jaroslav@326: jaroslav@326: @Compare public String variousCharacterTests() throws Exception { jaroslav@326: StringBuilder sb = new StringBuilder(); jaroslav@326: jaroslav@326: sb.append(Character.isUpperCase('a')); jaroslav@326: sb.append(Character.isUpperCase('A')); jaroslav@326: sb.append(Character.isLowerCase('a')); jaroslav@326: sb.append(Character.isLowerCase('A')); jaroslav@326: jaroslav@326: sb.append(Character.isLetter('A')); jaroslav@326: sb.append(Character.isLetterOrDigit('9')); jaroslav@326: sb.append(Character.isLetterOrDigit('A')); jaroslav@326: sb.append(Character.isLetter('0')); jaroslav@326: jaroslav@326: return sb.toString().toString(); jaroslav@326: } jaroslav@322: jaroslav@328: @Compare jaroslav@328: public String nullFieldInitialized() { jaroslav@328: NullField nf = new NullField(); jaroslav@328: return ("" + nf.name).toString(); jaroslav@328: } jaroslav@328: jaroslav@296: @Factory jaroslav@296: public static Object[] create() { jaroslav@346: return VMTest.create(CompareStringsTest.class); jaroslav@296: } jaroslav@328: jaroslav@328: private static final class NullField { jaroslav@328: jaroslav@328: String name; jaroslav@328: } jaroslav@296: }