1cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath/* 2cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Licensed to the Apache Software Foundation (ASF) under one or more 3cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * contributor license agreements. See the NOTICE file distributed with 4cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * this work for additional information regarding copyright ownership. 5cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * The ASF licenses this file to You under the Apache License, Version 2.0 6cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * (the "License"); you may not use this file except in compliance with 7cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * the License. You may obtain a copy of the License at 8cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 9cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * http://www.apache.org/licenses/LICENSE-2.0 10cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 11cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Unless required by applicable law or agreed to in writing, software 12cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, 13cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * See the License for the specific language governing permissions and 15cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * limitations under the License. 16cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 17cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.io; 19cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 20cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.ByteArrayInputStream; 21cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.CharArrayReader; 22cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.IOException; 23cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.PipedInputStream; 24cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.PipedOutputStream; 25cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.Reader; 26cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.StreamTokenizer; 27cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.StringBufferInputStream; 28cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 29cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport tests.support.Support_StringReader; 30cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 31cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathpublic class StreamTokenizerTest extends junit.framework.TestCase { 32cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Support_StringReader r; 33cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 34cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamTokenizer st; 35cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 36cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String testString; 37cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 38cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 39cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#StreamTokenizer(java.io.InputStream) 40cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 41cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath @SuppressWarnings("deprecation") 42cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_io_InputStream() throws IOException { 43cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st = new StreamTokenizer(new StringBufferInputStream( 44cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "/comments\n d 8 'h'")); 45cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 46cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the next token returned should be the letter d", 47cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamTokenizer.TT_WORD, st.nextToken()); 48cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the next token returned should be the letter d", 49cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "d", st.sval); 50cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 51cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the next token returned should be the digit 8", 52cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamTokenizer.TT_NUMBER, st.nextToken()); 53cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the next token returned should be the digit 8", 54cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 8.0, st.nval); 55cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 56cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the next token returned should be the quote character", 57cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 39, st.nextToken()); 58cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the next token returned should be the quote character", 59cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "h", st.sval); 60cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 61cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 62cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 63cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#StreamTokenizer(java.io.Reader) 64cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 65cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_io_Reader() throws IOException { 66cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("/testing\n d 8 'h' "); 67cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the next token returned should be the letter d skipping the comments", 68cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamTokenizer.TT_WORD, st.nextToken()); 69cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the next token returned should be the letter d", 70cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "d", st.sval); 71cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 72cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the next token returned should be the digit 8", 73cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamTokenizer.TT_NUMBER, st.nextToken()); 74cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the next token returned should be the digit 8", 75cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 8.0, st.nval); 76cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 77cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the next token returned should be the quote character", 78cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 39, st.nextToken()); 79cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the next token returned should be the quote character", 80cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "h", st.sval); 81cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 82cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 83cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 84cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#commentChar(int) 85cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 86cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_commentCharI() throws IOException { 87cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("*comment \n / 8 'h' "); 88cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ordinaryChar('/'); 89cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.commentChar('*'); 90cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("nextToken() did not return the character / skiping the comments starting with *", 91cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 47, st.nextToken()); 92cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("the next token returned should be the digit 8", st 93cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .nextToken() == StreamTokenizer.TT_NUMBER 94cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && st.nval == 8.0); 95cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("the next token returned should be the quote character", 96cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == 39 && st.sval.equals("h")); 97cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 98cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 99cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#eolIsSignificant(boolean) 101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_eolIsSignificantZ() throws IOException { 103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("d 8\n"); 104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // by default end of line characters are not significant 105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("nextToken did not return d", 106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == StreamTokenizer.TT_WORD 107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && st.sval.equals("d")); 108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("nextToken did not return 8", 109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == StreamTokenizer.TT_NUMBER 110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && st.nval == 8.0); 111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("nextToken should be the end of file", 112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == StreamTokenizer.TT_EOF); 113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("d\n"); 114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.eolIsSignificant(true); 115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // end of line characters are significant 116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("nextToken did not return d", 117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == StreamTokenizer.TT_WORD 118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && st.sval.equals("d")); 119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("nextToken is the end of line", 120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == StreamTokenizer.TT_EOL); 121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#lineno() 125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_lineno() throws IOException { 127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("d\n 8\n"); 128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the lineno should be 1", 1, st.lineno()); 129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the lineno should be 2", 2, st.lineno()); 132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("the next line no should be 3", 3, st.lineno()); 134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#lowerCaseMode(boolean) 138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_lowerCaseModeZ() throws Exception { 140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // SM. 141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("HELLOWORLD"); 142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.lowerCaseMode(true); 143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("sval not converted to lowercase.", "helloworld", st.sval 146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ); 147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#nextToken() 151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath @SuppressWarnings("deprecation") 153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_nextToken() throws IOException { 154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // SM. 155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("\r\n/* fje fje 43.4 f \r\n f g */ 456.459 \r\n" 156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + "Hello / \r\n \r\n \n \r \257 Hi \'Hello World\'"); 157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ordinaryChar('/'); 158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.slashStarComments(true); 159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong Token type1: " + (char) st.ttype, 161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ttype == StreamTokenizer.TT_NUMBER); 162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong Token type2: " + st.ttype, 164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ttype == StreamTokenizer.TT_WORD); 165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong Token type3: " + st.ttype, st.ttype == '/'); 167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong Token type4: " + st.ttype, 169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ttype == StreamTokenizer.TT_WORD); 170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong Token type5: " + st.ttype, 172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ttype == StreamTokenizer.TT_WORD); 173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong Token type6: " + st.ttype, st.ttype == '\''); 175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong Token type7: " + st.ttype, st.sval 176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("Hello World")); 177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong Token type8: " + st.ttype, st.ttype == -1); 179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final PipedInputStream pin = new PipedInputStream(); 181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath PipedOutputStream pout = new PipedOutputStream(pin); 182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath pout.write("hello\n\r\r".getBytes("UTF-8")); 183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamTokenizer s = new StreamTokenizer(pin); 184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.eolIsSignificant(true); 185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong token 1,1", 186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.nextToken() == StreamTokenizer.TT_WORD 187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath && s.sval.equals("hello")); 188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong token 1,2", s.nextToken() == '\n'); 189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong token 1,3", s.nextToken() == '\n'); 190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong token 1,4", s.nextToken() == '\n'); 191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath pout.close(); 192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong token 1,5", 193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.nextToken() == StreamTokenizer.TT_EOF); 194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamTokenizer tokenizer = new StreamTokenizer( 195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new Support_StringReader("\n \r\n#")); 196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath tokenizer.ordinaryChar('\n'); // make \n ordinary 197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath tokenizer.eolIsSignificant(true); 198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong token 2,1", tokenizer.nextToken() == '\n'); 199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Wrong token 2,2", tokenizer.nextToken() == '\n'); 200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong token 2,3", '#', tokenizer.nextToken()); 201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#ordinaryChar(int) 205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ordinaryCharI() throws IOException { 207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // SM. 208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("Ffjein 893"); 209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ordinaryChar('F'); 210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("OrdinaryChar failed." + (char) st.ttype, 212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ttype == 'F'); 213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#ordinaryChars(int, int) 217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ordinaryCharsII() throws IOException { 219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // SM. 220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("azbc iof z 893"); 221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ordinaryChars('a', 'z'); 222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("OrdinaryChars failed.", 'a', st.nextToken()); 223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("OrdinaryChars failed.", 'z', st.nextToken()); 224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#parseNumbers() 228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_parseNumbers() throws IOException { 230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // SM 231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("9.9 678"); 232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Base behavior failed.", 233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == StreamTokenizer.TT_NUMBER); 234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ordinaryChars('0', '9'); 235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("setOrdinary failed.", '6', st.nextToken()); 236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.parseNumbers(); 237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("parseNumbers failed.", 238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == StreamTokenizer.TT_NUMBER); 239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#pushBack() 243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_pushBack() throws IOException { 245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // SM. 246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("Hello 897"); 247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.pushBack(); 249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("PushBack failed.", 250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == StreamTokenizer.TT_WORD); 251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#quoteChar(int) 255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_quoteCharI() throws IOException { 257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // SM 258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("<Hello World< HelloWorldH"); 259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.quoteChar('<'); 260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("QuoteChar failed.", '<', st.nextToken()); 261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("QuoteChar failed.", "Hello World", st.sval); 262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.quoteChar('H'); 263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("QuoteChar failed for word.", "elloWorld", st.sval 265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ); 266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#resetSyntax() 270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_resetSyntax() throws IOException { 272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // SM 273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("H 9\' ello World"); 274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.resetSyntax(); 275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("resetSyntax failed1." + (char) st.ttype, 276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == 'H'); 277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("resetSyntax failed1." + (char) st.ttype, 278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == ' '); 279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("resetSyntax failed2." + (char) st.ttype, 280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == '9'); 281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("resetSyntax failed3." + (char) st.ttype, 282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == '\''); 283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#slashSlashComments(boolean) 287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_slashSlashCommentsZ() throws IOException { 289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // SM. 290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("// foo \r\n /fiji \r\n -456"); 291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ordinaryChar('/'); 292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.slashSlashComments(true); 293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Test failed.", '/', st.nextToken()); 294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Test failed.", 295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == StreamTokenizer.TT_WORD); 296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#slashSlashComments(boolean) 300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_slashSlashComments_withSSOpen() throws IOException { 302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Reader reader = new CharArrayReader("t // t t t".toCharArray()); 303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamTokenizer st = new StreamTokenizer(reader); 305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.slashSlashComments(true); 306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(StreamTokenizer.TT_WORD, st.nextToken()); 308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(StreamTokenizer.TT_EOF, st.nextToken()); 309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#slashSlashComments(boolean) 313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_slashSlashComments_withSSOpen_NoComment() throws IOException { 315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Reader reader = new CharArrayReader("// t".toCharArray()); 316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamTokenizer st = new StreamTokenizer(reader); 318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.slashSlashComments(true); 319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ordinaryChar('/'); 320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(StreamTokenizer.TT_EOF, st.nextToken()); 322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#slashSlashComments(boolean) 326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_slashSlashComments_withSSClosed() throws IOException { 328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Reader reader = new CharArrayReader("// t".toCharArray()); 329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamTokenizer st = new StreamTokenizer(reader); 331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.slashSlashComments(false); 332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ordinaryChar('/'); 333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals('/', st.nextToken()); 335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals('/', st.nextToken()); 336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(StreamTokenizer.TT_WORD, st.nextToken()); 337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#slashStarComments(boolean) 341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_slashStarCommentsZ() throws IOException { 343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("/* foo \r\n /fiji \r\n*/ -456"); 344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.ordinaryChar('/'); 345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.slashStarComments(true); 346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Test failed.", 347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == StreamTokenizer.TT_NUMBER); 348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#slashStarComments(boolean) 352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_slashStarComments_withSTOpen() throws IOException { 354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Reader reader = new CharArrayReader("t /* t */ t".toCharArray()); 355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamTokenizer st = new StreamTokenizer(reader); 357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.slashStarComments(true); 358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(StreamTokenizer.TT_WORD, st.nextToken()); 360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(StreamTokenizer.TT_WORD, st.nextToken()); 361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(StreamTokenizer.TT_EOF, st.nextToken()); 362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#slashStarComments(boolean) 366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_slashStarComments_withSTClosed() throws IOException { 368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Reader reader = new CharArrayReader("t /* t */ t".toCharArray()); 369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamTokenizer st = new StreamTokenizer(reader); 371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.slashStarComments(false); 372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(StreamTokenizer.TT_WORD, st.nextToken()); 374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(StreamTokenizer.TT_EOF, st.nextToken()); 375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#toString() 379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toString() throws IOException { 381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("ABC Hello World"); 382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("toString failed." + st.toString(), 384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.toString().equals( 385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "Token[ABC], line 1")); 386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression test for HARMONY-4070 388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] data = new byte[] { (byte) '-' }; 389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath StreamTokenizer tokenizer = new StreamTokenizer( 390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new ByteArrayInputStream(data)); 391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath tokenizer.nextToken(); 392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String result = tokenizer.toString(); 393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Token['-'], line 1", result); 394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#whitespaceChars(int, int) 398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_whitespaceCharsII() throws IOException { 400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("azbc iof z 893"); 401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.whitespaceChars('a', 'z'); 402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("OrdinaryChar failed.", 403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == StreamTokenizer.TT_NUMBER); 404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.StreamTokenizer#wordChars(int, int) 408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_wordCharsII() throws IOException { 410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest("A893 -9B87"); 411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.wordChars('0', '9'); 412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("WordChar failed1.", 413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == StreamTokenizer.TT_WORD); 414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("WordChar failed2.", "A893", st.sval); 415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("WordChar failed3.", 416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken() == StreamTokenizer.TT_NUMBER); 417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("WordChar failed4.", "B87", st.sval); 419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest(" Hello World"); 421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.wordChars(' ', ' '); 422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("WordChars failed for whitespace.", "Hello World", st.sval 424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ); 425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath setTest(" Hello World\r\n \'Hello World\' Hello\' World"); 427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.wordChars(' ', ' '); 428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.wordChars('\'', '\''); 429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("WordChars failed for whitespace: " + st.sval, st.sval 431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("Hello World")); 432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st.nextToken(); 433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("WordChars failed for quote1: " + st.sval, st.sval 434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("\'Hello World\' Hello\' World")); 435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private void setTest(String s) { 438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath testString = s; 439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath r = new Support_StringReader(testString); 440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath st = new StreamTokenizer(r); 441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath protected void setUp() { 444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath protected void tearDown() { 447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath} 449