aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authornyamatongwe <unknown>2011-06-07 11:48:54 +1000
committernyamatongwe <unknown>2011-06-07 11:48:54 +1000
commit7c30a49a688384e5b2c0c573b3ec7ce400c01f7b (patch)
treef8067474c06b4a259e5c2a85eca2808bf9df39b1 /test
parentd46eab36df50e53cbe423ac5bf938d4c291bf5d2 (diff)
downloadscintilla-mirror-7c30a49a688384e5b2c0c573b3ec7ce400c01f7b.tar.gz
Add tests for bug found in #3291579 and for new RunStyles::Find
and ContractionState::HiddenLines methods.
Diffstat (limited to 'test')
-rw-r--r--test/unit/testContractionState.cxx21
-rw-r--r--test/unit/testRunStyles.cxx98
2 files changed, 119 insertions, 0 deletions
diff --git a/test/unit/testContractionState.cxx b/test/unit/testContractionState.cxx
index 96a7bbf8a..bd3b6f111 100644
--- a/test/unit/testContractionState.cxx
+++ b/test/unit/testContractionState.cxx
@@ -76,6 +76,7 @@ TEST_F(ContractionStateTest, ShowHide) {
EXPECT_EQ(0, pcs->GetVisible(1));
EXPECT_EQ(true, pcs->GetVisible(2));
EXPECT_EQ(4, pcs->LinesDisplayed());
+ EXPECT_EQ(1, pcs->HiddenLines());
pcs->SetVisible(1, 2, true);
for (int l=0;l<4;l++) {
@@ -88,6 +89,26 @@ TEST_F(ContractionStateTest, ShowHide) {
for (int l=0;l<4;l++) {
EXPECT_EQ(true, pcs->GetVisible(0));
}
+ EXPECT_EQ(0, pcs->HiddenLines());
+}
+
+TEST_F(ContractionStateTest, Hidden) {
+ pcs->InsertLines(0,1);
+ for (int l=0;l<2;l++) {
+ EXPECT_EQ(true, pcs->GetVisible(0));
+ }
+ EXPECT_EQ(0, pcs->HiddenLines());
+
+ pcs->SetVisible(1, 1, false);
+ EXPECT_EQ(true, pcs->GetVisible(0));
+ EXPECT_EQ(0, pcs->GetVisible(1));
+ EXPECT_EQ(1, pcs->HiddenLines());
+
+ pcs->SetVisible(1, 1, true);
+ for (int l=0;l<2;l++) {
+ EXPECT_EQ(true, pcs->GetVisible(0));
+ }
+ EXPECT_EQ(0, pcs->HiddenLines());
}
TEST_F(ContractionStateTest, Contracting) {
diff --git a/test/unit/testRunStyles.cxx b/test/unit/testRunStyles.cxx
index d5bf1bb08..f225ae7e2 100644
--- a/test/unit/testRunStyles.cxx
+++ b/test/unit/testRunStyles.cxx
@@ -28,11 +28,13 @@ protected:
TEST_F(RunStylesTest, IsEmptyInitially) {
EXPECT_EQ(0, prs->Length());
+ EXPECT_EQ(1, prs->Runs());
}
TEST_F(RunStylesTest, SimpleInsert) {
prs->InsertSpace(0, 1);
EXPECT_EQ(1, prs->Length());
+ EXPECT_EQ(1, prs->Runs());
EXPECT_EQ(0, prs->ValueAt(0));
EXPECT_EQ(1, prs->FindNextChange(0, prs->Length()));
EXPECT_EQ(2, prs->FindNextChange(1, prs->Length()));
@@ -41,7 +43,9 @@ TEST_F(RunStylesTest, SimpleInsert) {
TEST_F(RunStylesTest, TwoRuns) {
prs->InsertSpace(0, 2);
EXPECT_EQ(2, prs->Length());
+ EXPECT_EQ(1, prs->Runs());
prs->SetValueAt(0, 2);
+ EXPECT_EQ(2, prs->Runs());
EXPECT_EQ(2, prs->ValueAt(0));
EXPECT_EQ(0, prs->ValueAt(1));
EXPECT_EQ(1, prs->FindNextChange(0, prs->Length()));
@@ -56,6 +60,7 @@ TEST_F(RunStylesTest, LongerRuns) {
EXPECT_EQ(3, prs->ValueAt(0));
EXPECT_EQ(3, prs->ValueAt(1));
EXPECT_EQ(0, prs->ValueAt(2));
+ EXPECT_EQ(2, prs->Runs());
EXPECT_EQ(0, prs->StartRun(0));
EXPECT_EQ(2, prs->EndRun(0));
@@ -120,6 +125,12 @@ TEST_F(RunStylesTest, FillRangeAlreadyFilled) {
EXPECT_EQ(0, prs->FillRange(startFill2, 99, lengthFill2));
EXPECT_EQ(2, startFill2);
EXPECT_EQ(1, lengthFill2);
+ EXPECT_EQ(0, prs->ValueAt(0));
+ EXPECT_EQ(99, prs->ValueAt(1));
+ EXPECT_EQ(99, prs->ValueAt(2));
+ EXPECT_EQ(99, prs->ValueAt(3));
+ EXPECT_EQ(0, prs->ValueAt(4));
+ EXPECT_EQ(3, prs->Runs());
}
TEST_F(RunStylesTest, FillRangeAlreadyPartFilled) {
@@ -135,14 +146,18 @@ TEST_F(RunStylesTest, FillRangeAlreadyPartFilled) {
EXPECT_EQ(true, prs->FillRange(startFill2, 99, lengthFill2));
EXPECT_EQ(3, startFill2);
EXPECT_EQ(1, lengthFill2);
+ EXPECT_EQ(3, prs->Runs());
}
TEST_F(RunStylesTest, DeleteRange) {
prs->InsertSpace(0, 5);
prs->SetValueAt(0, 3);
+ EXPECT_EQ(2, prs->Runs());
prs->SetValueAt(1, 3);
+ EXPECT_EQ(2, prs->Runs());
prs->DeleteRange(1, 1);
EXPECT_EQ(4, prs->Length());
+ EXPECT_EQ(2, prs->Runs());
EXPECT_EQ(3, prs->ValueAt(0));
EXPECT_EQ(0, prs->ValueAt(1));
@@ -156,6 +171,88 @@ TEST_F(RunStylesTest, DeleteRange) {
EXPECT_EQ(4, prs->EndRun(2));
}
+TEST_F(RunStylesTest, Find) {
+ prs->InsertSpace(0, 5);
+ int startFill = 1;
+ int lengthFill = 3;
+ EXPECT_EQ(true, prs->FillRange(startFill, 99, lengthFill));
+ EXPECT_EQ(1, startFill);
+ EXPECT_EQ(3, lengthFill);
+
+ EXPECT_EQ(0, prs->Find(0,0));
+ EXPECT_EQ(1, prs->Find(99,0));
+ EXPECT_EQ(-1, prs->Find(3,0));
+
+ EXPECT_EQ(4, prs->Find(0,1));
+ EXPECT_EQ(1, prs->Find(99,1));
+ EXPECT_EQ(-1, prs->Find(3,1));
+
+ EXPECT_EQ(4, prs->Find(0,2));
+ EXPECT_EQ(2, prs->Find(99,2));
+ EXPECT_EQ(-1, prs->Find(3,2));
+
+ EXPECT_EQ(4, prs->Find(0,4));
+ EXPECT_EQ(-1, prs->Find(99,4));
+ EXPECT_EQ(-1, prs->Find(3,4));
+
+ EXPECT_EQ(-1, prs->Find(0,5));
+ EXPECT_EQ(-1, prs->Find(99,5));
+ EXPECT_EQ(-1, prs->Find(3,5));
+
+ EXPECT_EQ(-1, prs->Find(0,6));
+ EXPECT_EQ(-1, prs->Find(99,6));
+ EXPECT_EQ(-1, prs->Find(3,6));
+}
+
+TEST_F(RunStylesTest, FindWithReversion) {
+ prs->InsertSpace(0, 5);
+ EXPECT_EQ(1, prs->Runs());
+
+ int startFill = 1;
+ int lengthFill = 1;
+ EXPECT_EQ(true, prs->FillRange(startFill, 99, lengthFill));
+ EXPECT_EQ(1, startFill);
+ EXPECT_EQ(1, lengthFill);
+ EXPECT_EQ(3, prs->Runs());
+
+ startFill = 2;
+ lengthFill = 1;
+ EXPECT_EQ(true, prs->FillRange(startFill, 99, lengthFill));
+ EXPECT_EQ(2, startFill);
+ EXPECT_EQ(1, lengthFill);
+ EXPECT_EQ(3, prs->Runs());
+
+ startFill = 1;
+ lengthFill = 1;
+ EXPECT_EQ(true, prs->FillRange(startFill, 0, lengthFill));
+ EXPECT_EQ(3, prs->Runs());
+ EXPECT_EQ(1, lengthFill);
+
+ startFill = 2;
+ lengthFill = 1;
+ EXPECT_EQ(true, prs->FillRange(startFill, 0, lengthFill));
+ EXPECT_EQ(1, prs->Runs());
+ EXPECT_EQ(1, lengthFill);
+
+ EXPECT_EQ(-1, prs->Find(0,6));
+}
+
+TEST_F(RunStylesTest, FinalRunInversion) {
+ EXPECT_EQ(1, prs->Runs());
+ prs->InsertSpace(0, 1);
+ EXPECT_EQ(1, prs->Runs());
+ prs->SetValueAt(0, 1);
+ EXPECT_EQ(1, prs->Runs());
+ prs->InsertSpace(1, 1);
+ EXPECT_EQ(1, prs->Runs());
+ prs->SetValueAt(1, 1);
+ EXPECT_EQ(1, prs->Runs());
+ prs->SetValueAt(1, 0);
+ EXPECT_EQ(2, prs->Runs());
+ prs->SetValueAt(1, 1);
+ EXPECT_EQ(1, prs->Runs());
+}
+
TEST_F(RunStylesTest, DeleteAll) {
prs->InsertSpace(0, 5);
prs->SetValueAt(0, 3);
@@ -163,5 +260,6 @@ TEST_F(RunStylesTest, DeleteAll) {
prs->DeleteAll();
EXPECT_EQ(0, prs->Length());
EXPECT_EQ(0, prs->ValueAt(0));
+ EXPECT_EQ(1, prs->Runs());
}