// 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()); } 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()); } 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); } 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(); }