PageRenderTime 41ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 1ms

/external/apache-harmony/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/StringBuffer2Test.java

https://gitlab.com/brian0218/rk3288_r-box_android4.4.2_sdk
Java | 610 lines | 351 code | 63 blank | 196 comment | 4 complexity | 51ab8e551351dc5476ee16803110891c MD5 | raw file
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements. See the NOTICE file distributed with
  4. * this work for additional information regarding copyright ownership.
  5. * The ASF licenses this file to You under the Apache License, Version 2.0
  6. * (the "License"); you may not use this file except in compliance with
  7. * the License. You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. package org.apache.harmony.luni.tests.java.lang;
  18. public class StringBuffer2Test extends junit.framework.TestCase {
  19. StringBuffer testBuffer;
  20. /**
  21. * @tests java.lang.StringBuffer#StringBuffer()
  22. */
  23. public void test_Constructor() {
  24. // Test for method java.lang.StringBuffer()
  25. new StringBuffer();
  26. assertTrue("Invalid buffer created", true);
  27. }
  28. /**
  29. * @tests java.lang.StringBuffer#StringBuffer(int)
  30. */
  31. public void test_ConstructorI() {
  32. // Test for method java.lang.StringBuffer(int)
  33. StringBuffer sb = new StringBuffer(8);
  34. assertEquals("Newly constructed buffer is of incorrect length", 0, sb
  35. .length());
  36. }
  37. /**
  38. * @tests java.lang.StringBuffer#StringBuffer(java.lang.String)
  39. */
  40. public void test_ConstructorLjava_lang_String() {
  41. // Test for method java.lang.StringBuffer(java.lang.String)
  42. StringBuffer sb = new StringBuffer("HelloWorld");
  43. assertTrue("Invalid buffer created", sb.length() == 10
  44. && (sb.toString().equals("HelloWorld")));
  45. boolean pass = false;
  46. try {
  47. new StringBuffer(null);
  48. } catch (NullPointerException e) {
  49. pass = true;
  50. }
  51. assertTrue("Should throw NullPointerException", pass);
  52. }
  53. /**
  54. * @tests java.lang.StringBuffer#append(char[])
  55. */
  56. public void test_append$C() {
  57. // Test for method java.lang.StringBuffer
  58. // java.lang.StringBuffer.append(char [])
  59. char buf[] = new char[4];
  60. "char".getChars(0, 4, buf, 0);
  61. testBuffer.append(buf);
  62. assertEquals("Append of char[] failed",
  63. "This is a test bufferchar", testBuffer.toString());
  64. }
  65. /**
  66. * @tests java.lang.StringBuffer#append(char[], int, int)
  67. */
  68. public void test_append$CII() {
  69. // Test for method java.lang.StringBuffer
  70. // java.lang.StringBuffer.append(char [], int, int)
  71. StringBuffer sb = new StringBuffer();
  72. char[] buf1 = { 'H', 'e', 'l', 'l', 'o' };
  73. char[] buf2 = { 'W', 'o', 'r', 'l', 'd' };
  74. sb.append(buf1, 0, buf1.length);
  75. assertEquals("Buffer is invalid length after append", 5, sb.length());
  76. sb.append(buf2, 0, buf2.length);
  77. assertEquals("Buffer is invalid length after append", 10, sb.length());
  78. assertTrue("Buffer contains invalid chars", (sb.toString()
  79. .equals("HelloWorld")));
  80. }
  81. /**
  82. * @tests java.lang.StringBuffer#append(char)
  83. */
  84. public void test_appendC() {
  85. // Test for method java.lang.StringBuffer
  86. // java.lang.StringBuffer.append(char)
  87. StringBuffer sb = new StringBuffer();
  88. char buf1 = 'H';
  89. char buf2 = 'W';
  90. sb.append(buf1);
  91. assertEquals("Buffer is invalid length after append", 1, sb.length());
  92. sb.append(buf2);
  93. assertEquals("Buffer is invalid length after append", 2, sb.length());
  94. assertTrue("Buffer contains invalid chars",
  95. (sb.toString().equals("HW")));
  96. }
  97. /**
  98. * @tests java.lang.StringBuffer#append(double)
  99. */
  100. public void test_appendD() {
  101. // Test for method java.lang.StringBuffer
  102. // java.lang.StringBuffer.append(double)
  103. StringBuffer sb = new StringBuffer();
  104. sb.append(Double.MAX_VALUE);
  105. assertEquals("Buffer is invalid length after append", 22, sb.length());
  106. assertEquals("Buffer contains invalid characters",
  107. "1.7976931348623157E308", sb.toString());
  108. }
  109. /**
  110. * @tests java.lang.StringBuffer#append(float)
  111. */
  112. public void test_appendF() {
  113. // Test for method java.lang.StringBuffer
  114. // java.lang.StringBuffer.append(float)
  115. StringBuffer sb = new StringBuffer();
  116. final float floatNum = 900.87654F;
  117. sb.append(floatNum);
  118. assertTrue("Buffer is invalid length after append: " + sb.length(), sb
  119. .length() == String.valueOf(floatNum).length());
  120. assertTrue("Buffer contains invalid characters", sb.toString().equals(
  121. String.valueOf(floatNum)));
  122. }
  123. /**
  124. * @tests java.lang.StringBuffer#append(int)
  125. */
  126. public void test_appendI() {
  127. // Test for method java.lang.StringBuffer
  128. // java.lang.StringBuffer.append(int)
  129. StringBuffer sb = new StringBuffer();
  130. sb.append(9000);
  131. assertEquals("Buffer is invalid length after append", 4, sb.length());
  132. sb.append(1000);
  133. assertEquals("Buffer is invalid length after append", 8, sb.length());
  134. assertEquals("Buffer contains invalid characters",
  135. "90001000", sb.toString());
  136. }
  137. /**
  138. * @tests java.lang.StringBuffer#append(long)
  139. */
  140. public void test_appendJ() {
  141. // Test for method java.lang.StringBuffer
  142. // java.lang.StringBuffer.append(long)
  143. StringBuffer sb = new StringBuffer();
  144. long t = 927654321098L;
  145. sb.append(t);
  146. assertEquals("Buffer is of invlaid length", 12, sb.length());
  147. assertEquals("Buffer contains invalid characters",
  148. "927654321098", sb.toString());
  149. }
  150. /**
  151. * @tests java.lang.StringBuffer#append(java.lang.Object)
  152. */
  153. public void test_appendLjava_lang_Object() {
  154. // Test for method java.lang.StringBuffer
  155. // java.lang.StringBuffer.append(java.lang.Object)
  156. StringBuffer sb = new StringBuffer();
  157. Object obj1 = new Object();
  158. Object obj2 = new Object();
  159. sb.append(obj1);
  160. sb.append(obj2);
  161. assertTrue("Buffer contains invalid characters", sb.toString().equals(
  162. obj1.toString() + obj2.toString()));
  163. }
  164. /**
  165. * @tests java.lang.StringBuffer#append(java.lang.String)
  166. */
  167. public void test_appendLjava_lang_String() {
  168. // Test for method java.lang.StringBuffer
  169. // java.lang.StringBuffer.append(java.lang.String)
  170. StringBuffer sb = new StringBuffer();
  171. String buf1 = "Hello";
  172. String buf2 = "World";
  173. sb.append(buf1);
  174. assertEquals("Buffer is invalid length after append", 5, sb.length());
  175. sb.append(buf2);
  176. assertEquals("Buffer is invalid length after append", 10, sb.length());
  177. assertTrue("Buffer contains invalid chars", (sb.toString()
  178. .equals("HelloWorld")));
  179. }
  180. /**
  181. * @tests java.lang.StringBuffer#append(boolean)
  182. */
  183. public void test_appendZ() {
  184. // Test for method java.lang.StringBuffer
  185. // java.lang.StringBuffer.append(boolean)
  186. StringBuffer sb = new StringBuffer();
  187. sb.append(false);
  188. assertEquals("Buffer is invalid length after append", 5, sb.length());
  189. sb.append(true);
  190. assertEquals("Buffer is invalid length after append", 9, sb.length());
  191. assertTrue("Buffer is invalid length after append", (sb.toString()
  192. .equals("falsetrue")));
  193. }
  194. /**
  195. * @tests java.lang.StringBuffer#capacity()
  196. */
  197. public void test_capacity() {
  198. // Test for method int java.lang.StringBuffer.capacity()
  199. StringBuffer sb = new StringBuffer(10);
  200. assertEquals("Returned incorrect capacity", 10, sb.capacity());
  201. sb.ensureCapacity(100);
  202. assertTrue("Returned incorrect capacity", sb.capacity() >= 100);
  203. }
  204. /**
  205. * @tests java.lang.StringBuffer#charAt(int)
  206. */
  207. public void test_charAtI() {
  208. // Test for method char java.lang.StringBuffer.charAt(int)
  209. assertEquals("Returned incorrect char", 's', testBuffer.charAt(3));
  210. // Test for StringIndexOutOfBoundsException
  211. boolean exception = false;
  212. try {
  213. testBuffer.charAt(-1);
  214. } catch (StringIndexOutOfBoundsException e) {
  215. exception = true;
  216. } catch (ArrayIndexOutOfBoundsException e) {
  217. }
  218. assertTrue("Should throw StringIndexOutOfBoundsException", exception);
  219. }
  220. /**
  221. * @tests java.lang.StringBuffer#delete(int, int)
  222. */
  223. public void test_deleteII() {
  224. // Test for method java.lang.StringBuffer
  225. // java.lang.StringBuffer.delete(int, int)
  226. testBuffer.delete(7, 7);
  227. assertEquals("Deleted chars when start == end", "This is a test buffer", testBuffer.toString()
  228. );
  229. testBuffer.delete(4, 14);
  230. assertEquals("Deleted incorrect chars",
  231. "This buffer", testBuffer.toString());
  232. testBuffer = new StringBuffer("This is a test buffer");
  233. String sharedStr = testBuffer.toString();
  234. testBuffer.delete(0, testBuffer.length());
  235. assertEquals("Didn't clone shared buffer", "This is a test buffer", sharedStr
  236. );
  237. assertTrue("Deleted incorrect chars", testBuffer.toString().equals(""));
  238. testBuffer.append("more stuff");
  239. assertEquals("Didn't clone shared buffer 2", "This is a test buffer", sharedStr
  240. );
  241. assertEquals("Wrong contents", "more stuff", testBuffer.toString());
  242. try {
  243. testBuffer.delete(-5, 2);
  244. } catch (IndexOutOfBoundsException e) {
  245. }
  246. assertEquals("Wrong contents 2",
  247. "more stuff", testBuffer.toString());
  248. }
  249. /**
  250. * @tests java.lang.StringBuffer#deleteCharAt(int)
  251. */
  252. public void test_deleteCharAtI() {
  253. // Test for method java.lang.StringBuffer
  254. // java.lang.StringBuffer.deleteCharAt(int)
  255. testBuffer.deleteCharAt(3);
  256. assertEquals("Deleted incorrect char",
  257. "Thi is a test buffer", testBuffer.toString());
  258. }
  259. /**
  260. * @tests java.lang.StringBuffer#ensureCapacity(int)
  261. */
  262. public void test_ensureCapacityI() {
  263. // Test for method void java.lang.StringBuffer.ensureCapacity(int)
  264. StringBuffer sb = new StringBuffer(10);
  265. sb.ensureCapacity(100);
  266. assertTrue("Failed to increase capacity", sb.capacity() >= 100);
  267. }
  268. /**
  269. * @tests java.lang.StringBuffer#getChars(int, int, char[], int)
  270. */
  271. public void test_getCharsII$CI() {
  272. // Test for method void java.lang.StringBuffer.getChars(int, int, char
  273. // [], int)
  274. char[] buf = new char[10];
  275. testBuffer.getChars(4, 8, buf, 2);
  276. assertTrue("Returned incorrect chars", new String(buf, 2, 4)
  277. .equals(testBuffer.toString().substring(4, 8)));
  278. boolean exception = false;
  279. try {
  280. StringBuffer buf2 = new StringBuffer("");
  281. buf2.getChars(0, 0, new char[5], 2);
  282. } catch (IndexOutOfBoundsException e) {
  283. exception = true;
  284. }
  285. assertTrue("did not expect IndexOutOfBoundsException", !exception);
  286. }
  287. /**
  288. * @tests java.lang.StringBuffer#insert(int, char[])
  289. */
  290. public void test_insertI$C() {
  291. // Test for method java.lang.StringBuffer
  292. // java.lang.StringBuffer.insert(int, char [])
  293. char buf[] = new char[4];
  294. "char".getChars(0, 4, buf, 0);
  295. testBuffer.insert(15, buf);
  296. assertEquals("Insert test failed",
  297. "This is a test charbuffer", testBuffer.toString());
  298. boolean exception = false;
  299. StringBuffer buf1 = new StringBuffer("abcd");
  300. try {
  301. buf1.insert(-1, (char[]) null);
  302. } catch (StringIndexOutOfBoundsException e) {
  303. exception = true;
  304. } catch (NullPointerException e) {
  305. }
  306. assertTrue("Should throw StringIndexOutOfBoundsException", exception);
  307. }
  308. /**
  309. * @tests java.lang.StringBuffer#insert(int, char[], int, int)
  310. */
  311. public void test_insertI$CII() {
  312. // Test for method java.lang.StringBuffer
  313. // java.lang.StringBuffer.insert(int, char [], int, int)
  314. char[] c = new char[] { 'n', 'o', 't', ' ' };
  315. testBuffer.insert(8, c, 0, 4);
  316. assertEquals("This is not a test buffer", testBuffer.toString());
  317. StringBuffer buf1 = new StringBuffer("abcd");
  318. try {
  319. buf1.insert(-1, (char[]) null, 0, 0);
  320. fail();
  321. } catch (NullPointerException expected) {
  322. } catch (StringIndexOutOfBoundsException expected) {
  323. }
  324. try {
  325. testBuffer.insert(testBuffer.length() - 1, c, -1, 1);
  326. } catch (StringIndexOutOfBoundsException e) {
  327. //expected
  328. }
  329. }
  330. /**
  331. * @tests java.lang.StringBuffer#insert(int, char)
  332. */
  333. public void test_insertIC() {
  334. // Test for method java.lang.StringBuffer
  335. // java.lang.StringBuffer.insert(int, char)
  336. testBuffer.insert(15, 'T');
  337. assertEquals("Insert test failed",
  338. "This is a test Tbuffer", testBuffer.toString());
  339. }
  340. /**
  341. * @tests java.lang.StringBuffer#insert(int, double)
  342. */
  343. public void test_insertID() {
  344. // Test for method java.lang.StringBuffer
  345. // java.lang.StringBuffer.insert(int, double)
  346. testBuffer.insert(15, Double.MAX_VALUE);
  347. assertTrue("Insert test failed", testBuffer.toString().equals(
  348. "This is a test " + Double.MAX_VALUE + "buffer"));
  349. }
  350. /**
  351. * @tests java.lang.StringBuffer#insert(int, float)
  352. */
  353. public void test_insertIF() {
  354. // Test for method java.lang.StringBuffer
  355. // java.lang.StringBuffer.insert(int, float)
  356. testBuffer.insert(15, Float.MAX_VALUE);
  357. String testBufferString = testBuffer.toString();
  358. String expectedResult = "This is a test "
  359. + String.valueOf(Float.MAX_VALUE) + "buffer";
  360. assertTrue("Insert test failed, got: " + "\'" + testBufferString + "\'"
  361. + " but wanted: " + "\'" + expectedResult + "\'",
  362. testBufferString.equals(expectedResult));
  363. }
  364. /**
  365. * @tests java.lang.StringBuffer#insert(int, int)
  366. */
  367. public void test_insertII() {
  368. // Test for method java.lang.StringBuffer
  369. // java.lang.StringBuffer.insert(int, int)
  370. testBuffer.insert(15, 100);
  371. assertEquals("Insert test failed",
  372. "This is a test 100buffer", testBuffer.toString());
  373. }
  374. /**
  375. * @tests java.lang.StringBuffer#insert(int, long)
  376. */
  377. public void test_insertIJ() {
  378. // Test for method java.lang.StringBuffer
  379. // java.lang.StringBuffer.insert(int, long)
  380. testBuffer.insert(15, 88888888888888888L);
  381. assertEquals("Insert test failed",
  382. "This is a test 88888888888888888buffer", testBuffer.toString());
  383. }
  384. /**
  385. * @tests java.lang.StringBuffer#insert(int, java.lang.Object)
  386. */
  387. public void test_insertILjava_lang_Object() {
  388. // Test for method java.lang.StringBuffer
  389. // java.lang.StringBuffer.insert(int, java.lang.Object)
  390. Object obj1 = new Object();
  391. testBuffer.insert(15, obj1);
  392. assertTrue("Insert test failed", testBuffer.toString().equals(
  393. "This is a test " + obj1.toString() + "buffer"));
  394. }
  395. /**
  396. * @tests java.lang.StringBuffer#insert(int, java.lang.String)
  397. */
  398. public void test_insertILjava_lang_String() {
  399. // Test for method java.lang.StringBuffer
  400. // java.lang.StringBuffer.insert(int, java.lang.String)
  401. testBuffer.insert(15, "STRING ");
  402. assertEquals("Insert test failed",
  403. "This is a test STRING buffer", testBuffer.toString());
  404. }
  405. /**
  406. * @tests java.lang.StringBuffer#insert(int, boolean)
  407. */
  408. public void test_insertIZ() {
  409. // Test for method java.lang.StringBuffer
  410. // java.lang.StringBuffer.insert(int, boolean)
  411. testBuffer.insert(15, true);
  412. assertEquals("Insert test failed",
  413. "This is a test truebuffer", testBuffer.toString());
  414. }
  415. /**
  416. * @tests java.lang.StringBuffer#length()
  417. */
  418. public void test_length() {
  419. // Test for method int java.lang.StringBuffer.length()
  420. assertEquals("Incorrect length returned", 21, testBuffer.length());
  421. }
  422. /**
  423. * @tests java.lang.StringBuffer#replace(int, int, java.lang.String)
  424. */
  425. public void test_replaceIILjava_lang_String() {
  426. // Test for method java.lang.StringBuffer
  427. // java.lang.StringBuffer.replace(int, int, java.lang.String)
  428. testBuffer.replace(5, 9, "is a replaced");
  429. assertTrue("Replace failed, wanted: " + "\'"
  430. + "This is a replaced test buffer" + "\'" + " but got: " + "\'"
  431. + testBuffer.toString() + "\'", testBuffer.toString().equals(
  432. "This is a replaced test buffer"));
  433. assertEquals("insert1", "text", new StringBuffer().replace(0, 0, "text")
  434. .toString());
  435. assertEquals("insert2", "123text", new StringBuffer("123").replace(3, 3, "text")
  436. .toString());
  437. assertEquals("insert2", "1text23", new StringBuffer("123").replace(1, 1, "text")
  438. .toString());
  439. }
  440. private String writeString(String in) {
  441. StringBuffer result = new StringBuffer();
  442. result.append("\"");
  443. for (int i = 0; i < in.length(); i++) {
  444. result.append(" 0x" + Integer.toHexString(in.charAt(i)));
  445. }
  446. result.append("\"");
  447. return result.toString();
  448. }
  449. private void reverseTest(String id, String org, String rev, String back) {
  450. // create non-shared StringBuffer
  451. StringBuffer sb = new StringBuffer(org);
  452. sb.reverse();
  453. String reversed = sb.toString();
  454. assertTrue("reversed surrogate " + id + ": " + writeString(reversed),
  455. reversed.equals(rev));
  456. // create non-shared StringBuffer
  457. sb = new StringBuffer(reversed);
  458. sb.reverse();
  459. reversed = sb.toString();
  460. assertTrue("reversed surrogate " + id + "a: " + writeString(reversed),
  461. reversed.equals(back));
  462. // test algorithm when StringBuffer is shared
  463. sb = new StringBuffer(org);
  464. String copy = sb.toString();
  465. assertEquals(org, copy);
  466. sb.reverse();
  467. reversed = sb.toString();
  468. assertTrue("reversed surrogate " + id + ": " + writeString(reversed),
  469. reversed.equals(rev));
  470. sb = new StringBuffer(reversed);
  471. copy = sb.toString();
  472. assertEquals(rev, copy);
  473. sb.reverse();
  474. reversed = sb.toString();
  475. assertTrue("reversed surrogate " + id + "a: " + writeString(reversed),
  476. reversed.equals(back));
  477. }
  478. /**
  479. * @tests java.lang.StringBuffer#reverse()
  480. */
  481. public void test_reverse() {
  482. // Test for method java.lang.StringBuffer
  483. // java.lang.StringBuffer.reverse()
  484. String org;
  485. org = "a";
  486. reverseTest("0", org, org, org);
  487. org = "ab";
  488. reverseTest("1", org, "ba", org);
  489. org = "abcdef";
  490. reverseTest("2", org, "fedcba", org);
  491. org = "abcdefg";
  492. reverseTest("3", org, "gfedcba", org);
  493. }
  494. /**
  495. * @tests java.lang.StringBuffer#setCharAt(int, char)
  496. */
  497. public void test_setCharAtIC() {
  498. // Test for method void java.lang.StringBuffer.setCharAt(int, char)
  499. StringBuffer s = new StringBuffer("HelloWorld");
  500. s.setCharAt(4, 'Z');
  501. assertEquals("Returned incorrect char", 'Z', s.charAt(4));
  502. }
  503. /**
  504. * @tests java.lang.StringBuffer#setLength(int)
  505. */
  506. public void test_setLengthI() {
  507. // Test for method void java.lang.StringBuffer.setLength(int)
  508. testBuffer.setLength(1000);
  509. assertEquals("Failed to increase length", 1000, testBuffer.length());
  510. assertTrue("Increase in length trashed buffer", testBuffer.toString()
  511. .startsWith("This is a test buffer"));
  512. testBuffer.setLength(2);
  513. assertEquals("Failed to decrease length", 2, testBuffer.length());
  514. assertEquals("Decrease in length failed",
  515. "Th", testBuffer.toString());
  516. }
  517. /**
  518. * @tests java.lang.StringBuffer#substring(int)
  519. */
  520. public void test_substringI() {
  521. // Test for method java.lang.String
  522. // java.lang.StringBuffer.substring(int)
  523. assertEquals("Returned incorrect substring", "is a test buffer", testBuffer.substring(5)
  524. );
  525. }
  526. /**
  527. * @tests java.lang.StringBuffer#substring(int, int)
  528. */
  529. public void test_substringII() {
  530. // Test for method java.lang.String
  531. // java.lang.StringBuffer.substring(int, int)
  532. assertEquals("Returned incorrect substring", "is", testBuffer.substring(5, 7)
  533. );
  534. }
  535. /**
  536. * @tests java.lang.StringBuffer#toString()
  537. */
  538. public void test_toString() {
  539. // Test for method java.lang.String java.lang.StringBuffer.toString()
  540. assertEquals("Incorrect string value returned", "This is a test buffer", testBuffer.toString()
  541. );
  542. }
  543. @Override
  544. protected void setUp() {
  545. testBuffer = new StringBuffer("This is a test buffer");
  546. }
  547. }