*/
public void test(TestHarness harness)
{
StringContent sc = new StringContent();
char[] ch = new char[] { 'A', 'B', 'C' };
Segment seg = new Segment(ch, 0, 3);
// check default result
try
{
sc.getChars(0, 1, seg);
}
catch (BadLocationException e)
{
// ignore - tests below will fail if this happens
}
harness.check(seg.offset, 0);
harness.check(seg.count, 1);
harness.check(seg.array != ch);
harness.check(seg.array[0], '\n');
// if len goes past end of range, should get BadLocationException
boolean pass = false;
try
{
sc.getChars(0, 2, seg);
}
catch (BadLocationException e)
{
pass = true;
}
harness.check(pass);
// add some more text
try
{
sc.insertString(0, "ABCDEFG");
}
catch (BadLocationException e)
{
}
harness.check(sc.length(), 8);
// if index < 0 should get BadLocationException
pass = false;
try
{
sc.getChars(-1, 3, seg);
}
catch (BadLocationException e)
{
pass = true;
}
harness.check(pass);
// if index > end of text should get BadLocationException
pass = false;
try
{
sc.getChars(99, 1, seg);
}
catch (BadLocationException e)
{
pass = true;
}
harness.check(pass);
// if len goes past end of range, should get BadLocationException
pass = false;
try
{
sc.getChars(0, 99, seg);
}
catch (BadLocationException e)
{
pass = true;
}
harness.check(pass);
// try a zero length string
try
{
sc.getChars(1, 0, seg);
}
catch (BadLocationException e)
{
}
harness.check(seg.offset, 1);
harness.check(seg.count, 0);
// what happens for null Segment
pass = false;
try
{
sc.getChars(0, 1, null);
}
catch (NullPointerException e)
{
pass = true;
}
catch (BadLocationException e)
{
// ignore
}
harness.check(pass);
// what happens if we update the Segment array, does that change the
// StringContent
Segment seg2 = new Segment();
Segment seg3 = new Segment();
StringContent sc2 = new StringContent();
try
{
sc2.insertString(0, "XYZ");
sc2.getChars(0, 3, seg2);