extjs-mvc 0.4.0.f → 0.4.0.g

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. data/Rakefile +2 -2
  2. data/VERSION +1 -1
  3. data/bin/extjs-mvc +0 -3
  4. data/lib/extjs-mvc.rb +10 -6
  5. data/lib/extjs-mvc/api.rb +0 -1
  6. metadata +8 -84
  7. data/lib/src/App.js +0 -219
  8. data/lib/src/MVC.js +0 -260
  9. data/lib/src/Presenter.js +0 -52
  10. data/lib/src/README.rdoc +0 -69
  11. data/lib/src/controller/Controller.js +0 -278
  12. data/lib/src/controller/CrudController.js +0 -460
  13. data/lib/src/lib/Array.js +0 -26
  14. data/lib/src/lib/Booter.js +0 -416
  15. data/lib/src/lib/ClassManager.js +0 -191
  16. data/lib/src/lib/ControllerClassManager.js +0 -95
  17. data/lib/src/lib/Dependencies.js +0 -44
  18. data/lib/src/lib/DispatchMatcher.js +0 -98
  19. data/lib/src/lib/Dispatcher.js +0 -129
  20. data/lib/src/lib/Environment.js +0 -43
  21. data/lib/src/lib/Inflector.js +0 -155
  22. data/lib/src/lib/ModelClassManager.js +0 -19
  23. data/lib/src/lib/Route.js +0 -139
  24. data/lib/src/lib/Router.js +0 -282
  25. data/lib/src/lib/String.js +0 -94
  26. data/lib/src/lib/ViewClassManager.js +0 -229
  27. data/lib/src/lib/notes.txt +0 -32
  28. data/lib/src/model/AdapterManager.js +0 -30
  29. data/lib/src/model/Association.js +0 -26
  30. data/lib/src/model/Base.js +0 -63
  31. data/lib/src/model/BelongsToAssociation.js +0 -116
  32. data/lib/src/model/Cache.js +0 -131
  33. data/lib/src/model/HasManyAssociation.js +0 -160
  34. data/lib/src/model/Model.js +0 -331
  35. data/lib/src/model/UrlBuilder.js +0 -106
  36. data/lib/src/model/adapters/AbstractAdapter.js +0 -296
  37. data/lib/src/model/adapters/MemoryAdapter.js +0 -103
  38. data/lib/src/model/adapters/RESTAdapter.js +0 -345
  39. data/lib/src/model/adapters/RESTJSONAdapter.js +0 -68
  40. data/lib/src/model/adapters/notes.txt +0 -42
  41. data/lib/src/model/associations/Association.js +0 -192
  42. data/lib/src/model/associations/notes.txt +0 -87
  43. data/lib/src/model/validations/Errors.js +0 -136
  44. data/lib/src/model/validations/Plugin.js +0 -139
  45. data/lib/src/model/validations/Validations.js +0 -276
  46. data/lib/src/notes/Charts.graffle +0 -0
  47. data/lib/src/overrides/Ext.Component.js +0 -21
  48. data/lib/src/overrides/Ext.extend.js +0 -142
  49. data/lib/src/spec/Array.spec.js +0 -15
  50. data/lib/src/spec/ExtMVC.spec.js +0 -65
  51. data/lib/src/spec/Model.spec.js +0 -370
  52. data/lib/src/spec/OS.spec.js +0 -83
  53. data/lib/src/spec/Router.spec.js +0 -99
  54. data/lib/src/spec/SpecHelper.js +0 -106
  55. data/lib/src/spec/String.spec.js +0 -83
  56. data/lib/src/spec/model/AbstractAdapter.spec.js +0 -49
  57. data/lib/src/spec/model/Associations.spec.js +0 -99
  58. data/lib/src/spec/model/Cache.spec.js +0 -5
  59. data/lib/src/spec/model/RESTAdapter.spec.js +0 -19
  60. data/lib/src/spec/model/ValidationErrors.spec.js +0 -64
  61. data/lib/src/spec/model/Validations.spec.js +0 -166
  62. data/lib/src/spec/model/ValidationsPlugin.spec.js +0 -108
  63. data/lib/src/spec/suite.html +0 -60
  64. data/lib/src/specs-old/JSSpec.css +0 -216
  65. data/lib/src/specs-old/JSSpec.js +0 -1512
  66. data/lib/src/specs-old/all.html +0 -66
  67. data/lib/src/specs-old/base.js +0 -14
  68. data/lib/src/specs-old/controller.js +0 -17
  69. data/lib/src/specs-old/diff_match_patch.js +0 -1
  70. data/lib/src/specs-old/model.js +0 -70
  71. data/lib/src/specs-old/route.js +0 -38
  72. data/lib/src/specs-old/router.js +0 -59
  73. data/lib/src/specs-old/string.js +0 -22
  74. data/lib/src/testrunner/JSpecFormatter.js +0 -111
  75. data/lib/src/testrunner/TestClient.js +0 -181
  76. data/lib/src/testrunner/TestGrid.js +0 -351
  77. data/lib/src/testrunner/TestRunner.js +0 -110
  78. data/lib/src/testrunner/TestViewport.js +0 -94
  79. data/lib/src/vendor.yml +0 -29
  80. data/lib/src/vendor/ext-3.1.1/vendor.yml +0 -16
  81. data/lib/src/view/FormWindow.js +0 -184
  82. data/lib/src/view/HasManyEditorGridPanel.js +0 -211
  83. data/lib/src/view/scaffold/Edit.js +0 -46
  84. data/lib/src/view/scaffold/Index.js +0 -561
  85. data/lib/src/view/scaffold/New.js +0 -20
  86. data/lib/src/view/scaffold/ScaffoldFormPanel.js +0 -255
@@ -1,65 +0,0 @@
1
- Screw.Unit(function() {
2
- describe("ExtMVC", function() {
3
- describe("environments", function() {
4
- it("should default to the production environment", function() {
5
- expect(ExtMVC.getCurrentEnvironment()).to(equal, 'production');
6
- });
7
-
8
- it("should return current environment settings", function() {
9
- expect(ExtMVC.getCurrentEnvironmentSettings()).to(equal, {});
10
- });
11
-
12
- it("should allow retrieval of existing environment settings", function() {
13
- var prod = ExtMVC.getEnvironmentSettings('production');
14
- expect(prod).to(equal, {});
15
- });
16
-
17
- it("should allow specification of environment settings to an existing environment", function() {
18
- expect(ExtMVC.getEnvironmentSettings('production')).to(equal, {});
19
-
20
- ExtMVC.addEnvironmentSettings('production', {myKey: 'myValue'});
21
- expect(ExtMVC.getEnvironmentSettings('production').myKey).to(equal, 'myValue');
22
- });
23
-
24
- it("should allow specification of environment settings to a new environment", function() {
25
- var mySettings = {key: 'value'};
26
- expect(ExtMVC.getEnvironmentSettings('newEnv')).to(equal, null);
27
-
28
- ExtMVC.addEnvironmentSettings('newEnv', mySettings);
29
- expect(ExtMVC.getEnvironmentSettings('newEnv')).to(equal, mySettings);
30
- });
31
-
32
- describe("when changing environment", function() {
33
- it("should allow the current environment to be changed if the new environment is valid", function() {
34
- expect(ExtMVC.getCurrentEnvironment()).to(equal, 'production');
35
-
36
- //we need to add this environment first to make it valid
37
- ExtMVC.addEnvironmentSettings('development', {key: 'value'});
38
-
39
- ExtMVC.setCurrentEnvironment('development');
40
- expect(ExtMVC.getCurrentEnvironment()).to(equal, 'development');
41
- });
42
-
43
- it("should not allow the current environment to be changed if the new environment does not exist", function() {
44
- ExtMVC.setCurrentEnvironment('notReal');
45
- expect(ExtMVC.getCurrentEnvironment()).to_not(equal, 'notReal');
46
- });
47
-
48
- it("should fire an environment-changed event", function() {
49
- var newEnv = '', newConfig = {};
50
- var devSettings = {key: 'value'};
51
-
52
- //add another environment to be able to change to
53
- ExtMVC.addEnvironmentSettings('development', devSettings);
54
-
55
- ExtMVC.on('environment-changed', function(n, c) {newEnv = n; newConfig = c;}, this);
56
-
57
- ExtMVC.setCurrentEnvironment('development');
58
-
59
- expect(newEnv).to(equal, 'development');
60
- expect(newConfig).to(equal, devSettings);
61
- });
62
- });
63
- });
64
- });
65
- });
@@ -1,370 +0,0 @@
1
- Screw.Unit(function() {
2
- //keep track of the object to which models are currently assigned
3
- var ns = ExtMVC.model.modelNamespace;
4
-
5
- //Uses some test models set up in SpecHelper.js
6
- user = new ns.User({
7
- id: 100,
8
- first_name: 'William',
9
- last_name: 'Adama',
10
- email: 'adama@bsg.net'
11
- });
12
-
13
- blogPost = new ns.BlogPost({
14
- id: 1,
15
- user_id: 100,
16
- title: 'Test Post',
17
- content: "Frak the odds, we're going to find her"
18
- });
19
-
20
- describe("Models", function() {
21
- describe("when defining models", function() {
22
- before(function() {
23
- //we redefine these several times in these blocks so delete between each test
24
- delete ns.AnotherModel;
25
- delete ns.SpecialModel;
26
- });
27
-
28
- it("should create the model immediately if it does not extend any other models", function() {
29
- expect(typeof ns.AnotherModel).to(equal, "undefined");
30
-
31
- ExtMVC.model.define('AnotherModel', {fields: [{name: 'title', type: 'string'}]});
32
- expect(typeof ns.AnotherModel).to(equal, "function");
33
- });
34
-
35
- describe("when checking to see if the model has already been defined", function() {
36
- it("should return false when trying to define a new model", function() {
37
- expect(ExtMVC.model.isAlreadyDefined('MySuperModel')).to(equal, false);
38
- });
39
-
40
- it("should return true when trying to define a model that already exists", function() {
41
- expect(ExtMVC.model.isAlreadyDefined('User')).to(equal, true);
42
- });
43
-
44
- it("should return true when trying to define a model that is already in the pending creation queue", function() {
45
- //Add a fake model that depends on another model which hasn't yet been created
46
- ExtMVC.model.define("AnotherNewModel", {extend: "NonExistantModel"});
47
-
48
- //AnotherNewModel hasn't actually been created at this point
49
- expect(typeof ns.AnotherNewModel).to(equal, "undefined");
50
- expect(ExtMVC.model.isAlreadyDefined('AnotherNewModel')).to(equal, true);
51
- });
52
- });
53
-
54
- describe("which extend other models", function() {
55
- after(function() {
56
- delete ns.RichUser; delete ns.AnotherModel;
57
- });
58
-
59
- it("should create the model immediately if it extends a model that has already been defined", function() {
60
- //make sure our superclass has been defined already
61
- expect(typeof ns.User).to(equal, "function");
62
-
63
- ExtMVC.model.define('RichUser', {extend: 'User', monies: 'many'});
64
- expect(typeof ns.RichUser).to(equal, "function");
65
- });
66
-
67
- it("should not create the model immediately if the model it extends has not yet been defined", function() {
68
- //make sure our superclass model hasn't been defined yet
69
- expect(typeof ns.SpecialModel).to(equal, "undefined");
70
-
71
- ExtMVC.model.define('AnotherModel', {fields: [{name: 'title', type: 'string'}], extend: 'SpecialModel'});
72
-
73
- expect(typeof ns.AnotherModel).to(equal, "undefined");
74
- });
75
-
76
- it("should add the create config to an internal object if the model it extends has not yet been defined", function() {
77
- var previousLength = ExtMVC.model.getModelsPendingDefinitionOf('SpecialModel').length;
78
-
79
- ExtMVC.model.define('AnotherModel', {fields: [{name: 'title', type: 'string'}], extend: 'SpecialModel'});
80
-
81
- var p = ExtMVC.model.getModelsPendingDefinitionOf('SpecialModel');
82
- expect(p.length).to(equal, previousLength + 1);
83
- expect(p[0].name).to(equal, 'AnotherModel');
84
- });
85
- });
86
- });
87
-
88
- describe("the pendingCreation queue", function() {
89
- //add a couple of fake configs to the queue...
90
- var peonUserConfig = {displayName: function() {return 'Peon';}};
91
- var noobUserConfig = {displayName: function() {return 'Noob';}};
92
-
93
- var m = ExtMVC.model;
94
- m.pendingCreation = {'User': [
95
- {name: 'PeonUser', config: peonUserConfig},
96
- {name: 'NoobUser', config: noobUserConfig}
97
- ]};
98
-
99
- it("should return an array of all model definitions waiting for the creation of a given model", function() {
100
- var p = ExtMVC.model.getModelsPendingDefinitionOf('User');
101
-
102
- expect(p.length).to(equal, 2);
103
- expect(p[0].name).to(equal, 'PeonUser');
104
- expect(p[1].name).to(equal, 'NoobUser');
105
- });
106
-
107
- it("should add model definition objects to the queue", function() {
108
- ExtMVC.model.setModelPendingDefinitionOf('User', 'NormalUser', {displayName: function() {return 'Normal';}});
109
-
110
- var p = ExtMVC.model.getModelsPendingDefinitionOf('User');
111
- expect(p.length).to(equal, 3);
112
- expect(p[2].name).to(equal, 'NormalUser');
113
- });
114
- });
115
-
116
- describe("when creating a model", function() {
117
- before(function() {
118
- ExtMVC.model.define('NewModel', {fields: [{name: 'name', type: 'string'}]});
119
- });
120
-
121
- after(function() {
122
- delete ns.NewModel; delete ns.MyNewModel;
123
- });
124
-
125
- it("should create the model within ExtMVC.model.modelNamespace", function() {
126
- expect(typeof ns.MyNewModel).to(equal, 'undefined');
127
- ExtMVC.model.create('MyNewModel', {fields: [{name: 'title', type: 'string'}]});
128
-
129
- expect(typeof ns.MyNewModel).to(equal, 'function');
130
- });
131
-
132
- it("make all defined methods available on that model", function() {
133
- expect(typeof(user.displayName)).to(equal, "function");
134
- });
135
-
136
- it("should not make the special classMethods property available", function() {
137
- expect(typeof(user.classMethods)).to(equal, "undefined");
138
- });
139
-
140
- it("should add all classMethods to the model class instead of each instance", function() {
141
- expect(typeof(ns.User.testClassMethod)).to(equal, "function");
142
- });
143
-
144
- it("should default the primary key to 'id'", function() {
145
- expect(user.primaryKey).to(equal, 'id');
146
- });
147
-
148
- it("should allow specification of a different primary key to 'id'", function() {
149
- ExtMVC.model.create("SpecialModel", {
150
- fields: [{name: 'someField', type: 'string'}],
151
- primaryKey: 'someField'
152
- });
153
-
154
- var special = new ns.SpecialModel({someField: 'someValue'});
155
-
156
- expect(special.primaryKey).to(equal, 'someField');
157
- });
158
-
159
- // it("should set its modelClass property as a reference to the class definition", function() {
160
- // expect(user.modelClass).to(equal, ns.User);
161
- // });
162
-
163
- it("should inherit all functions from Ext.data.Record", function() {
164
- var funcs = ['beginEdit', 'cancelEdit', 'clearError', 'commit', 'copy', 'endEdit', 'get',
165
- 'getChanges', 'hasError', 'isModified', 'join', 'override', 'reject', 'set'];
166
-
167
- var myInstance = new ns.NewModel({name: 'Ed'});
168
-
169
- Ext.each(funcs, function(functionName) {
170
- expect(typeof myInstance[functionName]).to(equal, "function");
171
- }, this);
172
- });
173
-
174
- it("should inherit all properties from Ext.data.Record", function() {
175
- var props = ['dirty', 'editing', 'error', 'id', 'modified'];
176
-
177
- var myInstance = new ns.NewModel({name: 'Ed'});
178
-
179
- Ext.each(props, function(propertyName) {
180
- expect(typeof myInstance[propertyName]).to_not(equal, "undefined");
181
- }, this);
182
- });
183
- });
184
-
185
- describe("after creation", function() {
186
- it("should check the pending creation array and create any models that depended on this model's existence", function() {
187
- //TODO: Work out how to test that getModelsPendingDefinitionOf has definitely been called here
188
-
189
- });
190
- });
191
-
192
- describe("A Model instance", function() {
193
- var newUser = new ns.User({
194
- first_name: 'Saul',
195
- last_name: 'Tigh',
196
- email: 'saul@tigh.net'
197
- });
198
-
199
- describe("which has not yet been saved for the first time (has no primary key set yet)", function() {
200
- it("should should return true to newRecord()", function() {
201
- expect(newUser.newRecord()).to(equal, true);
202
- });
203
-
204
- it("should assign constructor parameters to the data object like a normal Ext.data.Record", function() {
205
- expect(newUser.data.first_name).to(equal, 'Saul');
206
- expect(newUser.data.last_name).to(equal, 'Tigh');
207
- expect(newUser.data.email).to(equal, 'saul@tigh.net');
208
- });
209
- });
210
-
211
- describe("name functions", function() {
212
- var lmn;
213
-
214
- before(function() {
215
- ExtMVC.model.define("LongModelName", {fields: [{}]});
216
- lmn = new ns.LongModelName({});
217
- });
218
-
219
- after(function() {
220
- delete ns.LongModelName;
221
- });
222
-
223
- it("should keep the modelName as defined", function() {
224
- expect(newUser.modelName).to(equal, 'User');
225
- expect((new ns.BlogPost()).modelName).to(equal, 'BlogPost');
226
- });
227
-
228
- it("should return a tablename based on the model name", function() {
229
- expect(newUser.tableName).to(equal, 'users');
230
- expect(lmn.tableName).to(equal, 'long_model_names');
231
- });
232
-
233
- it("should return a foreignKeyName based on the model name", function() {
234
- expect(newUser.foreignKeyName).to(equal, "user_id");
235
- expect(lmn.foreignKeyName).to(equal, 'long_model_name_id');
236
- });
237
- });
238
-
239
- describe("which has already been saved (has a primary key set)", function() {
240
- var existingUser = new ns.User({
241
- first_name: 'Kara',
242
- last_name: 'Thrace',
243
- email: 'starbuck@bsg.net',
244
- id: 1
245
- });
246
-
247
- it("should return false to newRecord()", function() {
248
- expect(existingUser.newRecord()).to(equal, false);
249
- });
250
- });
251
- });
252
-
253
- describe("Extending another Model", function() {
254
- ExtMVC.model.define("SuperUser", {
255
- extend: 'User',
256
- fields: [
257
- {name: 'is_admin', type: 'boolean'},
258
- {name: 'password', type: 'string'},
259
-
260
- //here we are _re_defining User's email property to be a number
261
- {name: 'email', type: 'number'}
262
- ],
263
-
264
- //overwrite superclass's version of this instance method
265
- earlyJoiner: function() {
266
- return true;
267
- },
268
-
269
- classMethods: {
270
- //overwrite superclass's version of this class method
271
- methodToOverwrite: function() {
272
- return false;
273
- }
274
- }
275
- });
276
-
277
- var su = ns.SuperUser;
278
- var newSu = new ns.SuperUser({first_name : 'Ed', last_name: 'Spencer'});
279
-
280
- it("should inherit fields from the superclass", function() {
281
- var superFieldCount = ns.User.prototype.fields.getCount();
282
- var f = ns.SuperUser.prototype.fields;
283
-
284
- //we added two additional fields in SuperUser definition (email is a _re_definition)
285
- expect(f.getCount()).to(equal, superFieldCount + 2);
286
- });
287
-
288
- it("should overwrite any conflicting fields", function() {
289
- var email = ns.SuperUser.prototype.fields.get('email');
290
-
291
- expect(email.type).to(equal, "number");
292
- });
293
-
294
- it("should not overwrite the superclass's fields", function() {
295
- var email = ns.User.prototype.fields.get('email');
296
-
297
- expect(email.type).to(equal, "string");
298
- });
299
-
300
- it("should inherit instance methods from the superclass", function() {
301
- expect(newSu.displayName()).to(equal, "Ed Spencer");
302
- });
303
-
304
- it("should overwrite conflicting instance methods", function() {
305
- //the superclass' earlyJoiner method return false, test that this is overriden by subclass
306
- expect(newSu.earlyJoiner()).to(equal, true);
307
- });
308
-
309
- it("should not overwrite the superclass's conflicting instance methods", function() {
310
- newUser = new ns.User({id: 200});
311
- expect(newUser.earlyJoiner()).to(equal, false);
312
- });
313
-
314
- it("should inherit class methods from the superclass", function() {
315
- expect(typeof ns.SuperUser.testClassMethod).to(equal, "function");
316
- });
317
-
318
- it("should overwrite conflicting class methods", function() {
319
- expect(ns.SuperUser.methodToOverwrite()).to(equal, false);
320
- });
321
-
322
- it("should not overwrite the superclass's conflicting class methods", function() {
323
- expect(ns.User.methodToOverwrite()).to(equal, true);
324
- });
325
- });
326
-
327
- describe("Plugins", function() {
328
- var initializeCalled,
329
- myPlugin = { initialize: Ext.emptyFn };
330
-
331
- var normalPlugins = ExtMVC.model.plugins;
332
-
333
- before(function() {
334
- //clear out all plugins between tests
335
- ExtMVC.model.plugins = [];
336
- });
337
-
338
- after(function() {
339
- ExtMVC.model.plugins = normalPlugins;
340
- });
341
-
342
- it("should allow specification of new plugins", function() {
343
- var p = ExtMVC.model.plugins;
344
- expect(p.length).to(equal, 0);
345
-
346
- ExtMVC.model.addPlugin(myPlugin);
347
- expect(p.length).to(equal, 1);
348
- });
349
-
350
- it("should call each plugin's initialize method when a model is created", function() {
351
- initializeCalled = false;
352
- var initializeArgument;
353
-
354
- //set up a fake plugin initializer to check that we're receiving a reference to the model
355
- myPlugin.initialize = function(model) {
356
- initializeCalled = true;
357
- initializeArgument = model;
358
- };
359
-
360
- ExtMVC.model.addPlugin(myPlugin);
361
-
362
- ExtMVC.model.define('AnotherModel', {fields: []});
363
- expect(initializeCalled).to(equal, true);
364
- expect(initializeArgument).to(equal, ns.AnotherModel);
365
-
366
- delete ns.AnotherModel;
367
- });
368
- });
369
- });
370
- });
@@ -1,83 +0,0 @@
1
- Screw.Unit(function() {
2
- var os;
3
- before(function() {
4
- os = new ExtMVC.OS();
5
- });
6
-
7
- describe("An OS", function() {
8
-
9
- it("should register controllers", function() {
10
- expect(os.getController('index')).to(equal, null);
11
-
12
- os.registerController('index', MVCTest.controllers.IndexController);
13
- expect(os.controllers['index']).to(equal, MVCTest.controllers.IndexController);
14
- });
15
-
16
- it("should find and instantiate registered controllers", function() {
17
- os.registerController('index', MVCTest.controllers.IndexController);
18
- expect(os.getController('index') instanceof MVCTest.controllers.IndexController).to(equal, true);
19
- });
20
-
21
- describe("when Launching", function() {
22
- it("should call onLaunch", function() {
23
- var called = false;
24
- os.onLaunch = function() {called = true;};
25
-
26
- os.launch();
27
-
28
- expect(called).to(equal, true);
29
- });
30
- });
31
-
32
- describe("when creating the Router", function() {
33
- it("should not overwrite the current router", function() {
34
- os.router = 'not a real router';
35
- os.initializeRouter();
36
- expect(os.router).to(equal, 'not a real router');
37
- });
38
-
39
- it("should assign a new Router instance to this.router", function() {
40
- os.initializeRouter();
41
- expect(os.router instanceof ExtMVC.Router).to(equal, true);
42
- });
43
- });
44
-
45
- describe("when Dispatching", function() {
46
- var dispatchConfig = {controller: 'someController', action: 'new'};
47
-
48
- it("should assign dispatchConfig to os.params", function() {
49
- os.dispatch(dispatchConfig);
50
- expect(os.params).to(equal, dispatchConfig);
51
- });
52
-
53
- it("should use index as the default action", function() {
54
- os.dispatch({controller: 'someController'});
55
- expect(os.params).to(equal, {controller: 'someController', action: 'index'});
56
- });
57
-
58
- it("should attempt to find the correct controller", function() {
59
- var controllerName = "";
60
-
61
- var correctResponse = os.getController('index');
62
- os.getController = function(conName) {
63
- controllerName = conName;
64
- return correctResponse;
65
- };
66
-
67
- os.dispatch({controller: 'index'});
68
- expect(controllerName).to(equal, "index");
69
- });
70
-
71
- it("should fire the correct action", function() {
72
- var fired = false;
73
-
74
- os.getController('index').registerAction('test', function() {
75
- fired = true;
76
- });
77
-
78
- os.dispatch({controller: 'index', action: 'test'});
79
- expect(fired).to(equal, true);
80
- });
81
- });
82
- });
83
- });