diff --git a/libs/pbd/test/scalar_properties.cc b/libs/pbd/test/scalar_properties.cc index 05d97a7ad1..eff640c6d1 100644 --- a/libs/pbd/test/scalar_properties.cc +++ b/libs/pbd/test/scalar_properties.cc @@ -1,26 +1,37 @@ #include "scalar_properties.h" +CPPUNIT_TEST_SUITE_REGISTRATION (ScalarPropertiesTest); + +using namespace std; using namespace PBD; namespace Properties { PBD::PropertyDescriptor fred; }; +void +ScalarPropertiesTest::make_property_quarks () +{ + Properties::fred.property_id = g_quark_from_static_string ("fred"); +} + ScalarPropertiesTest::ScalarPropertiesTest () : _fred (Properties::fred, 0) { - } void ScalarPropertiesTest::testBasic () { CPPUNIT_ASSERT (_fred.changed() == false); - + _fred = 4; CPPUNIT_ASSERT (_fred == 4); CPPUNIT_ASSERT (_fred.changed() == true); + _fred.clear_history (); + CPPUNIT_ASSERT (_fred.changed() == false); + _fred = 5; CPPUNIT_ASSERT (_fred == 5); CPPUNIT_ASSERT (_fred.changed() == true); @@ -28,4 +39,15 @@ ScalarPropertiesTest::testBasic () PropertyList undo; PropertyList redo; _fred.diff (undo, redo); + + CPPUNIT_ASSERT (undo.size() == 1); + CPPUNIT_ASSERT (redo.size() == 1); + + PropertyTemplate* t = dynamic_cast*> (undo.begin()->second); + CPPUNIT_ASSERT (t); + CPPUNIT_ASSERT (t->val() == 4); + + t = dynamic_cast*> (redo.begin()->second); + CPPUNIT_ASSERT (t); + CPPUNIT_ASSERT (t->val() == 5); } diff --git a/libs/pbd/test/scalar_properties.h b/libs/pbd/test/scalar_properties.h index 04291e66e9..6175aeacfe 100644 --- a/libs/pbd/test/scalar_properties.h +++ b/libs/pbd/test/scalar_properties.h @@ -12,6 +12,8 @@ public: ScalarPropertiesTest (); void testBasic (); + static void make_property_quarks (); + private: PBD::Property _fred; }; diff --git a/libs/pbd/test/testrunner.cc b/libs/pbd/test/testrunner.cc index 7c4d893221..1512ebd024 100755 --- a/libs/pbd/test/testrunner.cc +++ b/libs/pbd/test/testrunner.cc @@ -4,10 +4,13 @@ #include #include #include +#include "scalar_properties.h" int main () { + ScalarPropertiesTest::make_property_quarks (); + CppUnit::TestResult testresult; CppUnit::TestResultCollector collectedresults;