Changeset 8477

Show
Ignore:
Timestamp:
05/08/07 11:45:20 (2 years ago)
Author:
jaredj
Message:

Applying minor updates to the UT of XmlStore? to fix a couple tabs, usage of assertEqual, and sorting. refs #2950

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • dojox/trunk/tests/data/XmlStore.js

    r8400 r8477  
    22dojo.require("dojox.data.XmlStore"); 
    33 
    4 function getBooks2Store(){ 
     4dojox.tests.data.XmlStore.getBooks2Store = function(){ 
    55        return new dojox.data.XmlStore({url: dojo.moduleUrl("dojox", "tests/data/books2.xml").toString()}); 
    6 } 
    7  
    8 function getBooksStore(){ 
     6}; 
     7 
     8dojox.tests.data.XmlStore.getBooksStore = function(){ 
    99        return new dojox.data.XmlStore({url: dojo.moduleUrl("dojox", "tests/data/books.xml").toString()}); 
    10 } 
    11  
     10}; 
    1211 
    1312tests.register("dojox.tests.data.XmlStore",  
     
    1817                        //      description: 
    1918                        //              Simple test of fetching all xml items through an XML element called isbn 
    20                         var store = getBooksStore(); 
     19                        var store = dojox.tests.data.XmlStore.getBooksStore(); 
    2120 
    2221                        var d = new doh.Deferred(); 
     
    3635                        //      description: 
    3736                        //              Simple test of fetching one xml items through an XML element called isbn 
    38                         var store = getBooks2Store(); 
     37                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
    3938 
    4039                        var d = new doh.Deferred(); 
     
    5453                        //      description: 
    5554                        //              Simple test of fetching one xml items through an XML element called isbn 
    56                         var store = getBooksStore(); 
     55                        var store = dojox.tests.data.XmlStore.getBooksStore(); 
    5756                         
    5857                        var d = new doh.Deferred(); 
     
    122121                        //      description: 
    123122                        //              Simple test of fetching one xml items through an XML element called isbn with ? pattern match 
    124                         var store = getBooks2Store(); 
     123                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
    125124                        var d = new doh.Deferred();                                                              
    126125                        function onComplete(items, request) { 
     
    139138                        //      description: 
    140139                        //              Simple test of fetching one xml items through an XML element called isbn with ? pattern match 
    141                         var store = getBooks2Store(); 
     140                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
    142141                        var d = new doh.Deferred(); 
    143142                        function onComplete(items, request) { 
     
    156155                        //      description: 
    157156                        //              Simple test of fetching one xml items through an XML element called isbn with * pattern match 
    158                         var store = getBooks2Store(); 
     157                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
    159158                        var d = new doh.Deferred(); 
    160159                        function onComplete(items, request) { 
     
    173172                        //      description: 
    174173                        //              Simple test of fetching one xml items through an XML element called isbn with ? pattern match and in case insensitive mode. 
    175                         var store = getBooks2Store(); 
     174                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
    176175                        var d = new doh.Deferred();                                                              
    177176                        function onComplete(items, request) { 
     
    190189                        //      description: 
    191190                        //              Simple test of fetching one xml items through an XML element called isbn with ? pattern match and in case sensitive mode. 
    192                         var store = getBooks2Store(); 
     191                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
    193192                        var d = new doh.Deferred();                                                              
    194193                        function onComplete(items, request) { 
     
    312311                         //     description: 
    313312                         //             Simple test of the getValue API 
    314                          var store = getBooks2Store(); 
     313                         var store = dojox.tests.data.XmlStore.getBooks2Store(); 
    315314 
    316315                         var d = new doh.Deferred(); 
     
    333332                         //     description: 
    334333                         //             Simple test of the getValues API 
    335                          var store = getBooks2Store(); 
     334                         var store = dojox.tests.data.XmlStore.getBooks2Store(); 
    336335 
    337336                         var d = new doh.Deferred(); 
     
    356355                         //     description: 
    357356                         //             Simple test of the isItem API 
    358                          var store = getBooks2Store(); 
     357                         var store = dojox.tests.data.XmlStore.getBooks2Store(); 
    359358 
    360359                         var d = new doh.Deferred(); 
    361360                         function onComplete(items, request) { 
    362                                  t.assertEqual(1, items.length); 
    363                                  var item = items[0]; 
    364                  t.assertTrue(store.isItem(item)); 
    365                                  t.assertTrue(!store.isItem({})); 
    366                                  t.assertTrue(!store.isItem("Foo")); 
    367                                  t.assertTrue(!store.isItem(1)); 
    368                                  d.callback(true); 
     361                                t.assertEqual(1, items.length); 
     362                                var item = items[0]; 
     363                                t.assertTrue(store.isItem(item)); 
     364                                t.assertTrue(!store.isItem({})); 
     365                                t.assertTrue(!store.isItem("Foo")); 
     366                                t.assertTrue(!store.isItem(1)); 
     367                                d.callback(true); 
    369368                         } 
    370369                         function onError(error, request) { 
     
    379378                        //      description: 
    380379                        //              Simple test of the isItem API across multiple store instances. 
    381                         var store1 = getBooks2Store(); 
    382                         var store2 = getBooks2Store(); 
     380                        var store1 = dojox.tests.data.XmlStore.getBooks2Store(); 
     381                        var store2 = dojox.tests.data.XmlStore.getBooks2Store(); 
    383382 
    384383                        var d = new doh.Deferred(); 
     
    386385                                t.assertEqual(1, items.length); 
    387386                                var item1 = items[0]; 
    388                 t.assertTrue(store1.isItem(item1)); 
     387                                t.assertTrue(store1.isItem(item1)); 
    389388 
    390389                                function onComplete2(items, request) { 
     
    392391                                        var item2 = items[0]; 
    393392                                        t.assertTrue(store2.isItem(item2)); 
    394  
    395393                                        t.assertTrue(!store1.isItem(item2)); 
    396394                                        t.assertTrue(!store2.isItem(item1)); 
     
    410408                        //      description: 
    411409                        //              Simple test of the hasAttribute API 
    412                         var store = getBooks2Store(); 
    413  
    414                         var d = new doh.Deferred(); 
    415                         function onComplete(items, request) { 
    416                 t.assertEqual(1, items.length); 
     410                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
     411 
     412                        var d = new doh.Deferred(); 
     413                        function onComplete(items, request) { 
     414                                t.assertEqual(1, items.length); 
    417415                                var item = items[0]; 
    418416                                t.assertTrue(store.hasAttribute(item,"isbn")); 
     
    431429                        //      description: 
    432430                        //              Simple test of the containsValue API 
    433                         var store = getBooks2Store(); 
    434  
    435                         var d = new doh.Deferred(); 
    436                         function onComplete(items, request) { 
    437                 t.assertEqual(1, items.length); 
     431                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
     432 
     433                        var d = new doh.Deferred(); 
     434                        function onComplete(items, request) { 
     435                                t.assertEqual(1, items.length); 
    438436                                var item = items[0]; 
    439437                                t.assertTrue(store.containsValue(item,"isbn", "A9B574")); 
     
    452450                        //      description: 
    453451                        //              Simple test of the sorting API in descending order. 
    454                         var store = getBooksStore(); 
    455  
    456                         var d = new doh.Deferred(); 
    457                         function onComplete(items, request) { 
    458                 t.assertEqual(20, items.length); 
    459  
    460                                 var itemId = 20; 
     452                        var store = dojox.tests.data.XmlStore.getBooksStore(); 
     453 
     454                        //Comparison is done as a string type (toString comparison), so the order won't be numeric 
     455                        //So have to compare in 'alphabetic' order. 
     456                        var order = [9,8,7,6,5,4,3,20,2,19,18,17,16,15,14,13,12,11,10,1]; 
     457                         
     458                        var d = new doh.Deferred(); 
     459                        function onComplete(items, request) { 
     460                                console.log("Number of items: " + items.length); 
     461                                t.assertEqual(20, items.length); 
     462 
    461463                                for(var i = 0; i < items.length; i++){ 
    462                                         t.assertTrue(itemId, store.getValue(items[i],"isbn").toString()); 
    463                                         itemId--; 
     464                                        t.assertEqual(order[i], store.getValue(items[i],"isbn").toString()); 
    464465                                } 
    465466                                d.callback(true); 
     
    478479                        //      description: 
    479480                        //              Simple test of the sorting API in ascending order. 
    480                         var store = getBooksStore(); 
    481  
    482                         var d = new doh.Deferred(); 
    483                         function onComplete(items, request) { 
    484                 t.assertEqual(20, items.length); 
    485  
     481                        var store = dojox.tests.data.XmlStore.getBooksStore(); 
     482 
     483                        //Comparison is done as a string type (toString comparison), so the order won't be numeric 
     484                        //So have to compare in 'alphabetic' order. 
     485                        var order = [1,10,11,12,13,14,15,16,17,18,19,2,20,3,4,5,6,7,8,9]; 
     486                                                 
     487                        var d = new doh.Deferred(); 
     488                        function onComplete(items, request) { 
     489                                t.assertEqual(20, items.length); 
    486490                                var itemId = 1; 
    487491                                for(var i = 0; i < items.length; i++){ 
    488                                         t.assertTrue(itemId, store.getValue(items[i],"isbn").toString()); 
    489                                         itemId++; 
     492                                        t.assertEqual(order[i], store.getValue(items[i],"isbn").toString()); 
    490493                                } 
    491494                                d.callback(true); 
     
    499502                        return d; //Object 
    500503                }, 
     504                function testReadAPI_sortDescendingNumeric(t){ 
     505                        //      summary:  
     506                        //              Simple test of the sorting API in descending order using a numeric comparator. 
     507                        //      description: 
     508                        //              Simple test of the sorting API in descending order using a numeric comparator. 
     509                        var store = dojox.tests.data.XmlStore.getBooksStore(); 
     510 
     511                        //isbn should be treated as a numeric, not as a string comparison 
     512                        store.comparatorMap = {}; 
     513                        store.comparatorMap["isbn"] = function(a, b){ 
     514                                var ret = 0; 
     515                                if(parseInt(a.toString()) > parseInt(b.toString())){ 
     516                                        ret = 1; 
     517                                }else if(parseInt(a.toString()) < parseInt(b.toString())){ 
     518                                        ret = -1; 
     519                                } 
     520                                return ret; //int, {-1,0,1} 
     521                        }; 
     522 
     523                        var d = new doh.Deferred(); 
     524                        function onComplete(items, request) { 
     525                                t.assertEqual(20, items.length); 
     526                                var itemId = 20; 
     527                                for(var i = 0; i < items.length; i++){ 
     528                                        t.assertEqual(itemId, store.getValue(items[i],"isbn").toString()); 
     529                                        itemId--; 
     530                                } 
     531                                d.callback(true); 
     532                        } 
     533                        function onError(error, request) { 
     534                                d.errback(error); 
     535                        } 
     536 
     537                        var sortAttributes = [{attribute: "isbn", descending: true}]; 
     538                        store.fetch({query:{isbn:"*"}, sort: sortAttributes, onComplete: onComplete, onError: onError}); 
     539                        return d; //Object 
     540                }, 
     541                function testReadAPI_sortAscendingNumeric(t){ 
     542                        //      summary:  
     543                        //              Simple test of the sorting API in ascending order using a numeric comparator. 
     544                        //      description: 
     545                        //              Simple test of the sorting API in ascending order using a numeric comparator. 
     546                        var store = dojox.tests.data.XmlStore.getBooksStore(); 
     547 
     548                        //isbn should be treated as a numeric, not as a string comparison 
     549                        store.comparatorMap = {}; 
     550                        store.comparatorMap["isbn"] = function(a, b){ 
     551                                var ret = 0; 
     552                                if(parseInt(a.toString()) > parseInt(b.toString())){ 
     553                                        ret = 1; 
     554                                }else if(parseInt(a.toString()) < parseInt(b.toString())){ 
     555                                        ret = -1; 
     556                                } 
     557                                return ret; //int, {-1,0,1} 
     558                        }; 
     559 
     560                        var d = new doh.Deferred(); 
     561                        function onComplete(items, request) { 
     562                                t.assertEqual(20, items.length); 
     563                                var itemId = 1; 
     564                                for(var i = 0; i < items.length; i++){ 
     565                                        t.assertEqual(itemId, store.getValue(items[i],"isbn").toString()); 
     566                                        itemId++; 
     567                                } 
     568                                d.callback(true); 
     569                        } 
     570                        function onError(error, request) { 
     571                                d.errback(error); 
     572                        } 
     573 
     574                        var sortAttributes = [{attribute: "isbn"}]; 
     575                        store.fetch({query:{isbn:"*"}, sort: sortAttributes, onComplete: onComplete, onError: onError}); 
     576                        return d; //Object 
     577                }, 
    501578                function testReadAPI_isItemLoaded(t){ 
    502579                        //      summary:  
     
    504581                        //      description: 
    505582                        //              Simple test of the isItemLoaded API 
    506                         var store = getBooks2Store(); 
    507  
    508                         var d = new doh.Deferred(); 
    509                         function onComplete(items, request) { 
    510                 t.assertEqual(1, items.length); 
     583                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
     584 
     585                        var d = new doh.Deferred(); 
     586                        function onComplete(items, request) { 
     587                                t.assertEqual(1, items.length); 
    511588                                var item = items[0]; 
    512589                                t.assertTrue(store.isItemLoaded(item)); 
     
    525602                        //              Simple test of the getFeatures function of the store 
    526603 
    527                         var store = getBooks2Store(); 
     604                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
    528605                        var features = store.getFeatures();  
    529606                        var count = 0; 
     
    539616                        //      description: 
    540617                        //              Simple test of the getAttributes API 
    541                         var store = getBooks2Store(); 
    542  
    543                         var d = new doh.Deferred(); 
    544                         function onComplete(items, request) { 
    545                 t.assertEqual(1, items.length); 
     618                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
     619 
     620                        var d = new doh.Deferred(); 
     621                        function onComplete(items, request) { 
     622                                t.assertEqual(1, items.length); 
    546623                                var item = items[0]; 
    547624                                var attributes = store.getAttributes(item); 
    548                                 for(var i = 0; i < attributes.length; i++){ 
    549  
    550  
    551                                 } 
    552                                 //Should be six, as all items will have tagName, childNodes, and text() special attributes  
     625 
     626                                //Should be six, as all items should have tagName, childNodes, and text() special attributes  
    553627                                //in addition to any doc defined ones, which in this case are author, title, and isbn 
    554628                                //FIXME:  Figure out why IE returns 5!  Need to get firebug lite working in IE for that. 
     629                                //Suspect it's childNodes, may not be defined if there are no child nodes. 
     630                                for(var i = 0; i < attributes.length; i++){ 
     631                                        console.log("attribute found: " + attributes[i]); 
     632                                } 
    555633                                if(dojo.isIE){ 
    556634                                        t.assertEqual(5,attributes.length); 
     
    571649                        //      description: 
    572650                        //              Simple test of the setValue API 
    573                         var store = getBooks2Store(); 
    574  
    575                         var d = new doh.Deferred(); 
    576                         function onComplete(items, request) { 
    577                 t.assertEqual(1, items.length); 
     651                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
     652 
     653                        var d = new doh.Deferred(); 
     654                        function onComplete(items, request) { 
     655                                t.assertEqual(1, items.length); 
    578656                                var item = items[0]; 
    579657                                t.assertTrue(store.containsValue(item,"isbn", "A9B574")); 
     
    593671                        //      description: 
    594672                        //              Simple test of the unsetAttribute API 
    595                         var store = getBooks2Store(); 
    596  
    597                         var d = new doh.Deferred(); 
    598                         function onComplete(items, request) { 
    599                 t.assertEqual(1, items.length); 
     673                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
     674 
     675                        var d = new doh.Deferred(); 
     676                        function onComplete(items, request) { 
     677                                t.assertEqual(1, items.length); 
    600678                                var item = items[0]; 
    601679                                t.assertTrue(store.containsValue(item,"isbn", "A9B574")); 
     
    616694                        //      description: 
    617695                        //              Simple test of the isDirty API 
    618                         var store = getBooks2Store(); 
    619  
    620                         var d = new doh.Deferred(); 
    621                         function onComplete(items, request) { 
    622                 t.assertEqual(1, items.length); 
     696                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
     697 
     698                        var d = new doh.Deferred(); 
     699                        function onComplete(items, request) { 
     700                                t.assertEqual(1, items.length); 
    623701                                var item = items[0]; 
    624702                                t.assertTrue(store.containsValue(item,"isbn", "A9B574")); 
     
    639717                        //      description: 
    640718                        //              Simple test of the isDirty API 
    641                         var store = getBooks2Store(); 
    642  
    643                         var d = new doh.Deferred(); 
    644                         function onComplete(items, request) { 
    645                 t.assertEqual(1, items.length); 
     719                        var store = dojox.tests.data.XmlStore.getBooks2Store(); 
     720 
     721                        var d = new doh.Deferred(); 
     722                        function onComplete(items, request) { 
     723                                t.assertEqual(1, items.length); 
    646724                                var item = items[0]; 
    647725                                t.assertTrue(store.containsValue(item,"isbn", "A9B574"));