]>
Commit | Line | Data |
---|---|---|
6527f429 DM |
1 | Ext.cmd.api.adapter = {\r |
2 | \r | |
3 | testResults: [],\r | |
4 | isRunning: false,\r | |
5 | resultBufferSize: 100,\r | |
6 | api: Ext.cmd.api,\r | |
7 | \r | |
8 | setCurrentScript: function(name) {\r | |
9 | // no-op, managed by Ext.Boot.currentFile\r | |
10 | },\r | |
11 | \r | |
12 | getCurrentScript: function() {\r | |
13 | return this.api.getCurrentScript(Ext.Boot.currentFile);\r | |
14 | },\r | |
15 | \r | |
16 | getSpecStructure: function(spec) {\r | |
17 | var structure = {\r | |
18 | hash: '' + spec.id,\r | |
19 | fileName: spec.fileName,\r | |
20 | description: spec.description\r | |
21 | };\r | |
22 | return structure;\r | |
23 | },\r | |
24 | \r | |
25 | getSuiteStructure: function(suite) {\r | |
26 | var structure = {\r | |
27 | hash: '' + suite.id,\r | |
28 | fileName: suite.fileName,\r | |
29 | suites: [],\r | |
30 | specs: [],\r | |
31 | description: suite.description\r | |
32 | },\r | |
33 | specs = suite.specs_,\r | |
34 | spLen = specs.length, spec, sp,\r | |
35 | suites = suite.suites_,\r | |
36 | suLen = suites.length, suite, su;\r | |
37 | \r | |
38 | for(su = 0; su < suLen; su++) {\r | |
39 | suite = suites[su];\r | |
40 | structure.suites.push(this.getSuiteStructure(suite));\r | |
41 | }\r | |
42 | \r | |
43 | for(sp = 0; sp < spLen; sp++) {\r | |
44 | spec = specs[sp];\r | |
45 | structure.specs.push(this.getSpecStructure(spec));\r | |
46 | }\r | |
47 | \r | |
48 | return structure;\r | |
49 | },\r | |
50 | \r | |
51 | reportTestStructure: function() {\r | |
52 | var runner = jasmine.getEnv().currentRunner_,\r | |
53 | suites = runner.topLevelSuites(),\r | |
54 | slen = suites.length, suite, s,\r | |
55 | structure = [];\r | |
56 | \r | |
57 | for(s = 0; s < slen; s++) {\r | |
58 | suite = suites[s];\r | |
59 | structure.push(this.getSuiteStructure(suite));\r | |
60 | }\r | |
61 | this.api.addTestSuites(structure);\r | |
62 | },\r | |
63 | \r | |
64 | executeTests: function() {\r | |
65 | this.isRunning = true;\r | |
66 | jasmine.setOptions(this.api.jsonOptions);\r | |
67 | jasmine.initDebug();\r | |
68 | jasmine.getEnv().addReporter(new SenchaTestRunner.Reporter());\r | |
69 | jasmine.getEnv().execute();\r | |
70 | },\r | |
71 | \r | |
72 | flushTestResults: function() {\r | |
73 | if(this.testResults.length > 0) {\r | |
74 | var results = this.testResults;\r | |
75 | this.testResults = [];\r | |
76 | this.api.reportTestResults(results);\r | |
77 | }\r | |
78 | },\r | |
79 | \r | |
80 | onTestResult: function(result) {\r | |
81 | this.testResults.push(result);\r | |
82 | if(this.testResults.length >= this.resultBufferSize) {\r | |
83 | this.flushTestResults();\r | |
84 | }\r | |
85 | },\r | |
86 | \r | |
87 | captureCoverage: function() {\r | |
88 | var coverageObj = window['__coverage__'];\r | |
89 | if(coverageObj) {\r | |
90 | this.api.addTestCoverage(coverageObj);\r | |
91 | }\r | |
92 | },\r | |
93 | \r | |
94 | onTestsDone: function(success) {\r | |
95 | var me = this;\r | |
96 | me.isRunning = false;\r | |
97 | if(success === undefined) {\r | |
98 | me.success = true;\r | |
99 | } else {\r | |
100 | me.success = success;\r | |
101 | }\r | |
102 | me.flushTestResults();\r | |
103 | me.captureCoverage();\r | |
104 | this.api.stopWorkItem(me.success);\r | |
105 | }\r | |
106 | }; |