Helios-Browser-Tests.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. define(["amber/boot", "amber_core/SUnit"], function($boot){"use strict";
  2. if(!$boot.nilAsReceiver)$boot.nilAsReceiver=$boot.nil;
  3. var $core=$boot.api,nil=$boot.nilAsReceiver,$recv=$boot.asReceiver,$globals=$boot.globals;
  4. if(!$boot.nilAsClass)$boot.nilAsClass=$boot.dnu;
  5. $core.addPackage("Helios-Browser-Tests");
  6. $core.packages["Helios-Browser-Tests"].innerEval = function (expr) { return eval(expr); };
  7. $core.packages["Helios-Browser-Tests"].transport = {"type":"amd","amdNamespace":"helios"};
  8. $core.addClass("HLBrowserTest", $globals.TestCase, ["browser"], "Helios-Browser-Tests");
  9. //>>excludeStart("ide", pragmas.excludeIdeData);
  10. $globals.HLBrowserTest.comment="Test cases for the functionality of `HLBrowserModel`";
  11. //>>excludeEnd("ide");
  12. $core.addMethod(
  13. $core.method({
  14. selector: "setUp",
  15. protocol: "tests",
  16. fn: function (){
  17. var self=this;
  18. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  19. return $core.withContext(function($ctx1) {
  20. //>>excludeEnd("ctx");
  21. self["@browser"]=$recv($globals.HLBrowserModel)._new();
  22. return self;
  23. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  24. }, function($ctx1) {$ctx1.fill(self,"setUp",{},$globals.HLBrowserTest)});
  25. //>>excludeEnd("ctx");
  26. },
  27. //>>excludeStart("ide", pragmas.excludeIdeData);
  28. args: [],
  29. source: "setUp\x0a\x09browser := HLBrowserModel new.",
  30. referencedClasses: ["HLBrowserModel"],
  31. //>>excludeEnd("ide");
  32. messageSends: ["new"]
  33. }),
  34. $globals.HLBrowserTest);
  35. $core.addMethod(
  36. $core.method({
  37. selector: "testAllProtocolsSelectedWhenSelectingAClass",
  38. protocol: "tests",
  39. fn: function (){
  40. var self=this;
  41. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  42. return $core.withContext(function($ctx1) {
  43. //>>excludeEnd("ctx");
  44. var $2,$1;
  45. $2=$recv(self["@browser"])._selectedProtocol();
  46. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  47. $ctx1.sendIdx["selectedProtocol"]=1;
  48. //>>excludeEnd("ctx");
  49. $1=$recv($2)._isNil();
  50. self._assert_($1);
  51. $recv(self["@browser"])._selectedClass_($globals.Object);
  52. self._assert_equals_($recv(self["@browser"])._selectedProtocol(),$recv(self["@browser"])._allProtocol());
  53. return self;
  54. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  55. }, function($ctx1) {$ctx1.fill(self,"testAllProtocolsSelectedWhenSelectingAClass",{},$globals.HLBrowserTest)});
  56. //>>excludeEnd("ctx");
  57. },
  58. //>>excludeStart("ide", pragmas.excludeIdeData);
  59. args: [],
  60. source: "testAllProtocolsSelectedWhenSelectingAClass\x0a\x09self assert: browser selectedProtocol isNil.\x0a\x09browser selectedClass: Object.\x0a\x09self assert: browser selectedProtocol equals: browser allProtocol.",
  61. referencedClasses: ["Object"],
  62. //>>excludeEnd("ide");
  63. messageSends: ["assert:", "isNil", "selectedProtocol", "selectedClass:", "assert:equals:", "allProtocol"]
  64. }),
  65. $globals.HLBrowserTest);
  66. $core.addMethod(
  67. $core.method({
  68. selector: "testProtocolSelectedWhenChangingClass",
  69. protocol: "tests",
  70. fn: function (){
  71. var self=this;
  72. var protocolSelectedCalled;
  73. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  74. return $core.withContext(function($ctx1) {
  75. //>>excludeEnd("ctx");
  76. protocolSelectedCalled=(0);
  77. $recv($recv(self["@browser"])._announcer())._on_do_for_($globals.HLProtocolSelected,(function(){
  78. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  79. return $core.withContext(function($ctx2) {
  80. //>>excludeEnd("ctx");
  81. protocolSelectedCalled=$recv(protocolSelectedCalled).__plus((1));
  82. return protocolSelectedCalled;
  83. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  84. }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)});
  85. //>>excludeEnd("ctx");
  86. }),self);
  87. $recv(self["@browser"])._selectedClass_($globals.Object);
  88. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  89. $ctx1.sendIdx["selectedClass:"]=1;
  90. //>>excludeEnd("ctx");
  91. self._assert_equals_(protocolSelectedCalled,(1));
  92. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  93. $ctx1.sendIdx["assert:equals:"]=1;
  94. //>>excludeEnd("ctx");
  95. $recv(self["@browser"])._selectedClass_($globals.ProtoObject);
  96. self._assert_equals_(protocolSelectedCalled,(2));
  97. return self;
  98. //>>excludeStart("ctx", pragmas.excludeDebugContexts);
  99. }, function($ctx1) {$ctx1.fill(self,"testProtocolSelectedWhenChangingClass",{protocolSelectedCalled:protocolSelectedCalled},$globals.HLBrowserTest)});
  100. //>>excludeEnd("ctx");
  101. },
  102. //>>excludeStart("ide", pragmas.excludeIdeData);
  103. args: [],
  104. source: "testProtocolSelectedWhenChangingClass\x0a\x09| protocolSelectedCalled |\x0a\x09protocolSelectedCalled := 0.\x0a\x09browser announcer on: HLProtocolSelected do: [protocolSelectedCalled := protocolSelectedCalled + 1] for: self.\x0a\x09browser selectedClass: Object.\x0a\x09self assert: protocolSelectedCalled equals: 1.\x0a\x09browser selectedClass: ProtoObject.\x0a\x09self assert: protocolSelectedCalled equals: 2.",
  105. referencedClasses: ["HLProtocolSelected", "Object", "ProtoObject"],
  106. //>>excludeEnd("ide");
  107. messageSends: ["on:do:for:", "announcer", "+", "selectedClass:", "assert:equals:"]
  108. }),
  109. $globals.HLBrowserTest);
  110. });