gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog testsuite/server/PropertyListTe...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog testsuite/server/PropertyListTe...
Date: Tue, 05 Feb 2008 18:16:55 +0000

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 <address@hidden>
 
+       * 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" );
+       }
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]