blob: 5fcde73678ac47d0d3cfed86b11c7b02d2dcd8ef [file] [log] [blame]
// 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();
}