| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| // TODO(srdjan): Move StringBuffer to visible names. |
| |
| class StringBufferTest { |
| static testConstructor() { |
| StringBuffer bf = new StringBuffer(""); |
| Expect.equals(true, bf.isEmpty); |
| |
| bf = new StringBuffer("abc"); |
| Expect.equals(3, bf.length); |
| Expect.equals("abc", bf.toString()); |
| } |
| |
| static testAdd() { |
| StringBuffer bf = new StringBuffer(""); |
| Expect.equals(true, bf.isEmpty); |
| |
| bf.add("a"); |
| Expect.equals(1, bf.length); |
| Expect.equals("a", bf.toString()); |
| |
| bf = new StringBuffer(""); |
| bf.add("a"); |
| bf.add("b"); |
| Expect.equals("ab", bf.toString()); |
| |
| bf = new StringBuffer("abc"); |
| bf.add("d"); |
| bf.add("e"); |
| bf.add("f"); |
| bf.add("g"); |
| bf.add("h"); |
| bf.add("i"); |
| bf.add("j"); |
| bf.add("k"); |
| bf.add("l"); |
| bf.add("m"); |
| bf.add("n"); |
| bf.add("o"); |
| bf.add("p"); |
| bf.add("q"); |
| bf.add("r"); |
| bf.add("s"); |
| bf.add("t"); |
| bf.add("u"); |
| bf.add("v"); |
| bf.add("w"); |
| bf.add("x"); |
| bf.add("y"); |
| bf.add("z"); |
| bf.add("\n"); |
| bf.add("thequickbrownfoxjumpsoverthelazydog"); |
| Expect.equals("abcdefghijklmnopqrstuvwxyz\n" |
| "thequickbrownfoxjumpsoverthelazydog", |
| bf.toString()); |
| |
| bf = new StringBuffer(""); |
| for (int i = 0; i < 100000; i++) { |
| bf.add(''); |
| bf.add(""); |
| } |
| Expect.equals("", bf.toString()); |
| |
| Expect.equals(bf, bf.add("foo")); |
| } |
| |
| static testLength() { |
| StringBuffer bf = new StringBuffer(""); |
| Expect.equals(0, bf.length); |
| bf.add("foo"); |
| Expect.equals(3, bf.length); |
| bf.add("bar"); |
| Expect.equals(6, bf.length); |
| bf.add(""); |
| Expect.equals(6, bf.length); |
| } |
| |
| static testIsEmpty() { |
| StringBuffer bf = new StringBuffer(""); |
| Expect.equals(true, bf.isEmpty); |
| bf.add("foo"); |
| Expect.equals(false, bf.isEmpty); |
| } |
| |
| static testAddAll() { |
| StringBuffer bf = new StringBuffer(""); |
| bf.addAll(["foo", "bar", "a", "b", "c"]); |
| Expect.equals("foobarabc", bf.toString()); |
| |
| bf.addAll([]); |
| Expect.equals("foobarabc", bf.toString()); |
| |
| bf.addAll(["", "", ""]); |
| Expect.equals("foobarabc", bf.toString()); |
| |
| Expect.equals(bf, bf.addAll(["foo"])); |
| } |
| |
| static testClear() { |
| StringBuffer bf = new StringBuffer(""); |
| bf.add("foo"); |
| bf.clear(); |
| Expect.equals("", bf.toString()); |
| Expect.equals(0, bf.length); |
| |
| bf.add("bar"); |
| Expect.equals("bar", bf.toString()); |
| Expect.equals(3, bf.length); |
| bf.clear(); |
| Expect.equals("", bf.toString()); |
| Expect.equals(0, bf.length); |
| |
| Expect.equals(bf, bf.clear()); |
| } |
| |
| static testToString() { |
| StringBuffer bf = new StringBuffer(""); |
| Expect.equals("", bf.toString()); |
| |
| bf = new StringBuffer("foo"); |
| Expect.equals("foo", bf.toString()); |
| |
| bf = new StringBuffer("foo"); |
| bf.add("bar"); |
| Expect.equals("foobar", bf.toString()); |
| } |
| |
| static testChaining() { |
| StringBuffer bf = new StringBuffer(""); |
| StringBuffer bf2 = new StringBuffer(""); |
| bf2.add("bf2"); |
| bf.add("foo") |
| .add("bar") |
| .add(bf2) |
| .add(bf2) |
| .add("toto"); |
| Expect.equals("foobarbf2bf2toto", bf.toString()); |
| } |
| |
| static testMain() { |
| testToString(); |
| testConstructor(); |
| testLength(); |
| testIsEmpty(); |
| testAdd(); |
| testAddAll(); |
| testClear(); |
| testChaining(); |
| } |
| } |
| |
| main() { |
| StringBufferTest.testMain(); |
| } |