CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 08/02/05 18:16:54
Modified files: . : ChangeLog testsuite/server: PropertyListTest.cpp Log message: re-enable the tests, testing case-insensitive operations. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5564&r2=1.5565 http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/server/PropertyListTest.cpp?cvsroot=gnash&r1=1.22&r2=1.23 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.5564 retrieving revision 1.5565 diff -u -b -r1.5564 -r1.5565 --- ChangeLog 5 Feb 2008 16:14:28 -0000 1.5564 +++ ChangeLog 5 Feb 2008 18:16:53 -0000 1.5565 @@ -1,5 +1,7 @@ 2008-02-05 Sandro Santilli <[EMAIL PROTECTED]> + * testsuite/server/PropertyListTest.cpp: re-enable the tests, + testing case-insensitive operations. * testsuite/generic-testrunner.sh: don't write a logfile in the same dir of the testcase, use the builddir instead. Index: testsuite/server/PropertyListTest.cpp =================================================================== RCS file: /sources/gnash/gnash/testsuite/server/PropertyListTest.cpp,v retrieving revision 1.22 retrieving revision 1.23 diff -u -b -r1.22 -r1.23 --- testsuite/server/PropertyListTest.cpp 29 Jan 2008 07:13:24 -0000 1.22 +++ testsuite/server/PropertyListTest.cpp 5 Feb 2008 18:16:54 -0000 1.23 @@ -50,9 +50,12 @@ gnashInit(); boost::intrusive_ptr<movie_definition> md5 ( new DummyMovieDefinition(5) ); - boost::intrusive_ptr<movie_definition> md6 ( new DummyMovieDefinition(6) ); + boost::intrusive_ptr<movie_definition> md7 ( new DummyMovieDefinition(7) ); + + // TODO: test both SWF5 and SWF7 as they are different !! ManualClock clock; + VM& vm = VM::init(*md5, clock); vm.getRoot().setRootMovie( md5->create_movie_instance() ); @@ -68,7 +71,7 @@ string_table& st = vm.getStringTable(); - if (vm.getSWFVersion() > 6) // Below 7 is not case sensitive. + if (vm.getSWFVersion() > 6) // SWF 7 or higher is case sensitive. { check_equals(props.size(), 0); check ( props.setValue(st.find("Var0"), val, obj) ); @@ -123,6 +126,67 @@ check_equals( vals["var0"], "value3" ); check_equals( vals["Var0"], "value2" ); check_equals( vals["var1"], "value" ); - } // end version specific + + } + else + { + // Below SWF or is not case sensitive. + + check_equals(props.size(), 0); + check ( props.setValue(st.find("Var0"), val, obj) ); + check_equals(props.size(), 1); + + check ( props.getValue(st.find("Var0"), ret, obj) ); + check_equals ( ret, val ); + + // search should be case-insensitive + check ( props.getValue(st.find("var0"), ret, obj) ); + check_equals ( ret, val ); + + // new value overrides existing value + check ( props.setValue(st.find("Var0"), val2, obj) ); + check_equals(props.size(), 1); + check ( props.getValue(st.find("Var0"), ret, obj) ); + check_equals ( ret, val2 ); + + // case-insensitive setting value should override existing value + check ( props.setValue(st.find("var0"), val3, obj) ); + check_equals(props.size(), 1); + check ( props.getValue(st.find("vAr0"), ret, obj) ); + check_equals ( ret, val3 ); + + // Now add some new labels + check ( props.setValue(st.find("var1"), val, obj) ); + check_equals(props.size(), 2); + check ( props.setValue(st.find("var2"), val, obj) ); + check_equals(props.size(), 3); + check ( props.setValue(st.find("var3"), val, obj) ); + check_equals(props.size(), 4); + + // Test deletion of properties + + // this succeeds + check(props.delProperty(st.find("var3")).second); + check_equals(props.size(), 3); + + // this fails (non existent property) + check(!props.delProperty(st.find("non-existent")).first); + check_equals(props.size(), 3); + + // Set property var2 as protected from deletion! + check(props.setFlags(st.find("var2"), as_prop_flags::dontDelete, 0)); + // this fails (protected from deletion) + std::pair<bool, bool> delpair = props.delProperty(st.find("var2")); + check_equals(delpair.first, true); // property was found + check_equals(delpair.second, false); // property was NOT deleted + check_equals(props.size(), 3); + + std::map<std::string, std::string> vals; + props.enumerateKeyValue(obj, vals); + check_equals( vals.size(), 3 ); + check_equals( vals["Var0"], "value3" ); + check_equals( vals["var1"], "value" ); + check_equals( vals["var2"], "value" ); + } } _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit