Changeset 8477
- Timestamp:
- 05/08/07 11:45:20 (2 years ago)
- Files:
-
- 1 modified
-
dojox/trunk/tests/data/XmlStore.js (modified) (27 diffs)
Legend:
- Unmodified
- Added
- Removed
-
dojox/trunk/tests/data/XmlStore.js
r8400 r8477 2 2 dojo.require("dojox.data.XmlStore"); 3 3 4 function getBooks2Store(){4 dojox.tests.data.XmlStore.getBooks2Store = function(){ 5 5 return new dojox.data.XmlStore({url: dojo.moduleUrl("dojox", "tests/data/books2.xml").toString()}); 6 } 7 8 function getBooksStore(){6 }; 7 8 dojox.tests.data.XmlStore.getBooksStore = function(){ 9 9 return new dojox.data.XmlStore({url: dojo.moduleUrl("dojox", "tests/data/books.xml").toString()}); 10 } 11 10 }; 12 11 13 12 tests.register("dojox.tests.data.XmlStore", … … 18 17 // description: 19 18 // 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(); 21 20 22 21 var d = new doh.Deferred(); … … 36 35 // description: 37 36 // 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(); 39 38 40 39 var d = new doh.Deferred(); … … 54 53 // description: 55 54 // 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(); 57 56 58 57 var d = new doh.Deferred(); … … 122 121 // description: 123 122 // 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(); 125 124 var d = new doh.Deferred(); 126 125 function onComplete(items, request) { … … 139 138 // description: 140 139 // 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(); 142 141 var d = new doh.Deferred(); 143 142 function onComplete(items, request) { … … 156 155 // description: 157 156 // 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(); 159 158 var d = new doh.Deferred(); 160 159 function onComplete(items, request) { … … 173 172 // description: 174 173 // 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(); 176 175 var d = new doh.Deferred(); 177 176 function onComplete(items, request) { … … 190 189 // description: 191 190 // 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(); 193 192 var d = new doh.Deferred(); 194 193 function onComplete(items, request) { … … 312 311 // description: 313 312 // Simple test of the getValue API 314 var store = getBooks2Store();313 var store = dojox.tests.data.XmlStore.getBooks2Store(); 315 314 316 315 var d = new doh.Deferred(); … … 333 332 // description: 334 333 // Simple test of the getValues API 335 var store = getBooks2Store();334 var store = dojox.tests.data.XmlStore.getBooks2Store(); 336 335 337 336 var d = new doh.Deferred(); … … 356 355 // description: 357 356 // Simple test of the isItem API 358 var store = getBooks2Store();357 var store = dojox.tests.data.XmlStore.getBooks2Store(); 359 358 360 359 var d = new doh.Deferred(); 361 360 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); 369 368 } 370 369 function onError(error, request) { … … 379 378 // description: 380 379 // 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(); 383 382 384 383 var d = new doh.Deferred(); … … 386 385 t.assertEqual(1, items.length); 387 386 var item1 = items[0]; 388 t.assertTrue(store1.isItem(item1));387 t.assertTrue(store1.isItem(item1)); 389 388 390 389 function onComplete2(items, request) { … … 392 391 var item2 = items[0]; 393 392 t.assertTrue(store2.isItem(item2)); 394 395 393 t.assertTrue(!store1.isItem(item2)); 396 394 t.assertTrue(!store2.isItem(item1)); … … 410 408 // description: 411 409 // 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); 417 415 var item = items[0]; 418 416 t.assertTrue(store.hasAttribute(item,"isbn")); … … 431 429 // description: 432 430 // 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); 438 436 var item = items[0]; 439 437 t.assertTrue(store.containsValue(item,"isbn", "A9B574")); … … 452 450 // description: 453 451 // 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 461 463 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()); 464 465 } 465 466 d.callback(true); … … 478 479 // description: 479 480 // 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); 486 490 var itemId = 1; 487 491 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()); 490 493 } 491 494 d.callback(true); … … 499 502 return d; //Object 500 503 }, 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 }, 501 578 function testReadAPI_isItemLoaded(t){ 502 579 // summary: … … 504 581 // description: 505 582 // 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); 511 588 var item = items[0]; 512 589 t.assertTrue(store.isItemLoaded(item)); … … 525 602 // Simple test of the getFeatures function of the store 526 603 527 var store = getBooks2Store();604 var store = dojox.tests.data.XmlStore.getBooks2Store(); 528 605 var features = store.getFeatures(); 529 606 var count = 0; … … 539 616 // description: 540 617 // 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); 546 623 var item = items[0]; 547 624 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 553 627 //in addition to any doc defined ones, which in this case are author, title, and isbn 554 628 //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 } 555 633 if(dojo.isIE){ 556 634 t.assertEqual(5,attributes.length); … … 571 649 // description: 572 650 // 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); 578 656 var item = items[0]; 579 657 t.assertTrue(store.containsValue(item,"isbn", "A9B574")); … … 593 671 // description: 594 672 // 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); 600 678 var item = items[0]; 601 679 t.assertTrue(store.containsValue(item,"isbn", "A9B574")); … … 616 694 // description: 617 695 // 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); 623 701 var item = items[0]; 624 702 t.assertTrue(store.containsValue(item,"isbn", "A9B574")); … … 639 717 // description: 640 718 // 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); 646 724 var item = items[0]; 647 725 t.assertTrue(store.containsValue(item,"isbn", "A9B574"));