TESTCASE_AUTO(TestBug12519);
TESTCASE_AUTO(TestBug12677);
TESTCASE_AUTO(TestTableRedundancies);
+ TESTCASE_AUTO(TestBug13447);
TESTCASE_AUTO_END;
}
}
}
+void RBBITest::TestBug13447() {
+ UErrorCode status = U_ZERO_ERROR;
+ LocalPointer<RuleBasedBreakIterator> bi(
+ (RuleBasedBreakIterator *)BreakIterator::createWordInstance(Locale::getEnglish(), status));
+ assertSuccess(WHERE, status);
+ if (U_FAILURE(status)) return;
+ UnicodeString data(u"1234");
+ bi->setText(data);
+ assertEquals(WHERE, UBRK_WORD_NONE, bi->getRuleStatus());
+ assertEquals(WHERE, 4, bi->next());
+ assertEquals(WHERE, UBRK_WORD_NUMBER, bi->getRuleStatus());
+ assertEquals(WHERE, UBRK_DONE, bi->next());
+ assertEquals(WHERE, 4, bi->current());
+ assertEquals(WHERE, UBRK_WORD_NUMBER, bi->getRuleStatus());
+}
//
// TestDebug - A place-holder test for debugging purposes.
}
}
+ @Test
+ public void TestBug13447() {
+ // Bug 13447: verify that getRuleStatus() returns the value corresponding to current(),
+ // even after next() has returned DONE.
+ RuleBasedBreakIterator bi =
+ (RuleBasedBreakIterator)BreakIterator.getWordInstance(Locale.ENGLISH);
+ bi.setText("1234");
+ assertEquals("", BreakIterator.WORD_NONE, bi.getRuleStatus());
+ assertEquals("", 4, bi.next());
+ assertEquals("", BreakIterator.WORD_NUMBER, bi.getRuleStatus());
+ assertEquals("", BreakIterator.DONE, bi.next());
+ assertEquals("", 4, bi.current());
+ assertEquals("", BreakIterator.WORD_NUMBER, bi.getRuleStatus());
+ }
+
@Test
public void TestTableRebuild() {
// Test to verify that rebuilding the state tables from rule source for the standard