@@ -63,6 +63,7 @@ class FOptiAttrTest : public CPPUNIT_NS::TestFixture
6363 protected:
6464 void classNameTest ();
6565 void noArgumentTest ();
66+ void FCellColorTest ();
6667 void vga2ansiTest ();
6768 void sgrOptimizerTest ();
6869 void fakeReverseTest ();
@@ -86,6 +87,7 @@ class FOptiAttrTest : public CPPUNIT_NS::TestFixture
8687 // Add a methods to the test suite
8788 CPPUNIT_TEST (classNameTest);
8889 CPPUNIT_TEST (noArgumentTest);
90+ CPPUNIT_TEST (FCellColorTest);
8991 CPPUNIT_TEST (vga2ansiTest);
9092 CPPUNIT_TEST (sgrOptimizerTest);
9193 CPPUNIT_TEST (fakeReverseTest);
@@ -126,6 +128,50 @@ void FOptiAttrTest::noArgumentTest()
126128 CPPUNIT_ASSERT ( ! oa.isNormal (ch) );
127129 ch.color .setBgColor (finalcut::FColor::Default);
128130 CPPUNIT_ASSERT ( oa.isNormal (ch) );
131+
132+ finalcut::FCellColor cellcolor1 = {finalcut::FColor::Default, finalcut::FColor::Default};
133+ CPPUNIT_ASSERT ( ch.color == cellcolor1 );
134+ finalcut::FCellColor cellcolor2 = {finalcut::FColor::Red, finalcut::FColor::Blue};
135+ CPPUNIT_ASSERT ( ch.color != cellcolor2 );
136+ CPPUNIT_ASSERT ( cellcolor1 != cellcolor2 );
137+ copyBgColor (cellcolor2, cellcolor1);
138+ CPPUNIT_ASSERT ( cellcolor1.getBgColor () != finalcut::FColor::Default );
139+ CPPUNIT_ASSERT ( cellcolor1.getBgColor () == finalcut::FColor::Blue );
140+ copyFgColor (cellcolor2, cellcolor1);
141+ CPPUNIT_ASSERT ( cellcolor1.getFgColor () != finalcut::FColor::Default );
142+ CPPUNIT_ASSERT ( cellcolor1.getFgColor () == finalcut::FColor::Red );
143+ CPPUNIT_ASSERT ( cellcolor1 == cellcolor2 );
144+ cellcolor1 = {finalcut::FColor::Yellow, finalcut::FColor::NavyBlue};
145+ CPPUNIT_ASSERT ( cellcolor1.getFgColor () == finalcut::FColor::Yellow );
146+ CPPUNIT_ASSERT ( cellcolor1.getBgColor () == finalcut::FColor::NavyBlue );
147+ }
148+
149+ // ----------------------------------------------------------------------
150+ void FOptiAttrTest::FCellColorTest ()
151+ {
152+ finalcut::FChar ch{};
153+ ch.color .setFgColor (finalcut::FColor::Default);
154+ ch.color .setBgColor (finalcut::FColor::Default);
155+ finalcut::FCellColor cellcolor1 = {finalcut::FColor::Default, finalcut::FColor::Default};
156+ CPPUNIT_ASSERT ( ch.color == cellcolor1 );
157+ finalcut::FCellColor cellcolor2 = {finalcut::FColor::Red, finalcut::FColor::Blue};
158+ CPPUNIT_ASSERT ( ch.color != cellcolor2 );
159+ CPPUNIT_ASSERT ( cellcolor1 != cellcolor2 );
160+ copyBgColor (cellcolor2, cellcolor1);
161+ CPPUNIT_ASSERT ( cellcolor1.getBgColor () != finalcut::FColor::Default );
162+ CPPUNIT_ASSERT ( cellcolor1.getBgColor () == finalcut::FColor::Blue );
163+ copyFgColor (cellcolor2, cellcolor1);
164+ CPPUNIT_ASSERT ( cellcolor1.getFgColor () != finalcut::FColor::Default );
165+ CPPUNIT_ASSERT ( cellcolor1.getFgColor () == finalcut::FColor::Red );
166+ CPPUNIT_ASSERT ( cellcolor1 == cellcolor2 );
167+ cellcolor1 = {finalcut::FColor::Yellow, finalcut::FColor::NavyBlue};
168+ CPPUNIT_ASSERT ( cellcolor1.getFgColor () == finalcut::FColor::Yellow );
169+ CPPUNIT_ASSERT ( cellcolor1.getBgColor () == finalcut::FColor::NavyBlue );
170+ CPPUNIT_ASSERT ( cellcolor1 == finalcut::FCellColor ( finalcut::FColor::Yellow
171+ , finalcut::FColor::NavyBlue ) );
172+ finalcut::FColors pair{finalcut::FColor::Yellow, finalcut::FColor::NavyBlue};
173+ CPPUNIT_ASSERT ( cellcolor1 == finalcut::FCellColor (pair) );
174+ CPPUNIT_ASSERT ( cellcolor1 == finalcut::FCellColor (0x0011000eU ) );
129175}
130176
131177// ----------------------------------------------------------------------
@@ -398,8 +444,7 @@ void FOptiAttrTest::fakeReverseTest()
398444 CPPUNIT_ASSERT ( oa.changeAttribute (from, to).empty () );
399445
400446 // Gray text on blue background
401- to.color .setFgColor (finalcut::FColor::LightGray);
402- to.color .setBgColor (finalcut::FColor::Blue);
447+ to.color = {finalcut::FColor::LightGray, finalcut::FColor::Blue};
403448 CPPUNIT_ASSERT ( from != to );
404449 CPPUNIT_ASSERT_STRING ( oa.changeAttribute (from, to)
405450 , CSI " 37m" CSI " 44m" );
0 commit comments