f5bb7c525cd5044e6cad52a2ceec8e9520e65d00.svn-base 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. if (!dojo._hasResource["dojox.dtl.tests.context"]) { // _hasResource checks
  2. // added by build. Do
  3. // not use _hasResource
  4. // directly in your
  5. // code.
  6. dojo._hasResource["dojox.dtl.tests.context"] = true;
  7. dojo.provide("dojox.dtl.tests.context");
  8. dojo.require("dojox.dtl");
  9. doh.register("dojox.dtl.context", [function test_context_creation(t) {
  10. var context = new dojox.dtl.Context({
  11. foo : "foo",
  12. bar : "bar"
  13. });
  14. t.is("foo", context.foo);
  15. t.is("bar", context.bar);
  16. }, function test_context_push(t) {
  17. var context = new dojox.dtl.Context({
  18. foo : "foo",
  19. bar : "bar"
  20. });
  21. context.push();
  22. for (var key in context._dicts[0]) {
  23. t.t(key == "foo" || key == "bar");
  24. }
  25. }, function test_context_pop(t) {
  26. var context = new dojox.dtl.Context({
  27. foo : "foo",
  28. bar : "bar"
  29. });
  30. context.push();
  31. t.is("undefined", typeof context.foo);
  32. t.is("undefined", typeof context.bar);
  33. context.pop();
  34. t.is("foo", context.foo);
  35. t.is("bar", context.bar);
  36. }, function test_context_overpop(t) {
  37. var context = new dojox.dtl.Context();
  38. try {
  39. context.pop();
  40. t.t(false);
  41. } catch (e) {
  42. t
  43. .is(
  44. "pop() has been called more times than push() on the Context",
  45. e.message);
  46. }
  47. }, function test_context_filter(t) {
  48. var context = new dojox.dtl.Context({
  49. foo : "one",
  50. bar : "two",
  51. baz : "three"
  52. });
  53. var filtered = context.filter("foo", "bar");
  54. t.is(filtered.foo, "one");
  55. t.is(filtered.bar, "two");
  56. t.f(filtered.baz);
  57. filtered = context.filter({
  58. bar : true,
  59. baz : true
  60. });
  61. t.f(filtered.foo);
  62. t.is(filtered.bar, "two");
  63. t.is(filtered.baz, "three");
  64. filtered = context.filter(new dojox.dtl.Context({
  65. foo : true,
  66. baz : true
  67. }));
  68. t.is(filtered.foo, "one");
  69. t.f(filtered.bar);
  70. t.is(filtered.baz, "three");
  71. }, function test_context_extend(t) {
  72. var context = new dojox.dtl.Context({
  73. foo : "one"
  74. });
  75. var extended = context.extend({
  76. bar : "two",
  77. baz : "three"
  78. });
  79. t.is(extended.foo, "one");
  80. t.is(extended.bar, "two");
  81. t.is(extended.baz, "three");
  82. extended = context.extend({
  83. barr : "two",
  84. bazz : "three"
  85. });
  86. t.is(extended.foo, "one");
  87. t.f(extended.bar);
  88. t.f(extended.baz);
  89. t.is(extended.barr, "two");
  90. t.is(extended.bazz, "three");
  91. t.f(context.bar)
  92. t.f(context.baz);
  93. t.f(context.barr);
  94. t.f(context.bazz);
  95. }]);
  96. }