1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 | var path = require('path');
|
20 | var rewire = require('rewire');
|
21 | var shell = require('shelljs');
|
22 | var Q = require('q');
|
23 | var platformRoot = '../../template';
|
24 | var pkgRoot = './template/';
|
25 | var pkgPath = path.join(pkgRoot, 'AppPackages');
|
26 | var testPkgPath = './spec/unit/fixtures/DummyProject/AppPackages';
|
27 | var pkg = rewire(platformRoot + '/cordova/lib/package.js');
|
28 |
|
29 | var consoleLogOriginal;
|
30 |
|
31 | beforeEach(function () {
|
32 |
|
33 | consoleLogOriginal = pkg.__get__('console.log');
|
34 | pkg.__set__('console.log', function () {});
|
35 | });
|
36 |
|
37 | afterEach(function () {
|
38 | pkg.__set__('console.log', consoleLogOriginal);
|
39 | });
|
40 |
|
41 | describe('getPackage method', function () {
|
42 | it('start', function () {
|
43 | shell.rm('-rf', pkgPath);
|
44 | shell.cp('-R', testPkgPath, pkgRoot);
|
45 | });
|
46 |
|
47 | it('spec.1 should find windows anycpu debug package', function (done) {
|
48 | var rejected = jasmine.createSpy();
|
49 |
|
50 | pkg.getPackage('windows', 'debug', 'anycpu')
|
51 | .then(function (pkgInfo) {
|
52 | expect(pkgInfo.type).toBe('windows');
|
53 | expect(pkgInfo.buildtype).toBe('debug');
|
54 | expect(pkgInfo.arch).toBe('anycpu');
|
55 | expect(pkgInfo.script).toBeDefined();
|
56 | }, function (err) {
|
57 | console.error(err);
|
58 | rejected();
|
59 | })
|
60 | .finally(function () {
|
61 | expect(rejected).not.toHaveBeenCalled();
|
62 | done();
|
63 | });
|
64 | });
|
65 |
|
66 | it('spec.2 should find windows phone anycpu debug package', function (done) {
|
67 | var rejected = jasmine.createSpy();
|
68 |
|
69 | pkg.getPackage('phone', 'debug', 'anycpu')
|
70 | .then(function (pkgInfo) {
|
71 | expect(pkgInfo.type).toBe('phone');
|
72 | expect(pkgInfo.buildtype).toBe('debug');
|
73 | expect(pkgInfo.arch).toBe('anycpu');
|
74 | expect(pkgInfo.script).toBeDefined();
|
75 | }, rejected)
|
76 | .finally(function () {
|
77 | expect(rejected).not.toHaveBeenCalled();
|
78 | done();
|
79 | });
|
80 | });
|
81 |
|
82 | it('spec.3 should not find windows 10 anycpu debug package', function (done) {
|
83 | var resolved = jasmine.createSpy();
|
84 |
|
85 | pkg.getPackage('windows10', 'debug', 'anycpu')
|
86 | .then(resolved)
|
87 | .finally(function () {
|
88 | expect(resolved).not.toHaveBeenCalled();
|
89 | done();
|
90 | });
|
91 | });
|
92 |
|
93 | it('spec.4 should not find windows anycpu release package', function (done) {
|
94 | var resolved = jasmine.createSpy();
|
95 |
|
96 | pkg.getPackage('windows', 'release', 'anycpu')
|
97 | .then(resolved)
|
98 | .finally(function () {
|
99 | expect(resolved).not.toHaveBeenCalled();
|
100 | done();
|
101 | });
|
102 | });
|
103 |
|
104 | it('spec.5 should not find windows x86 debug package', function (done) {
|
105 | var resolved = jasmine.createSpy();
|
106 |
|
107 | pkg.getPackage('windows', 'debug', 'x86')
|
108 | .then(resolved)
|
109 | .finally(function () {
|
110 | expect(resolved).not.toHaveBeenCalled();
|
111 | done();
|
112 | });
|
113 | });
|
114 |
|
115 | it('end', function () {
|
116 | shell.rm('-rf', pkgPath);
|
117 | });
|
118 | });
|
119 |
|
120 | describe('getPackageFileInfo method', function () {
|
121 | it('spec.6 should get file info correctly for wp8 anycpu debug package', function () {
|
122 | var packageFile = path.join(pkgPath, 'CordovaApp.Phone_0.0.1.0_debug_Test', 'CordovaApp.Phone_0.0.1.0_AnyCPU_debug.appxbundle');
|
123 | var pkgInfo = pkg.getPackageFileInfo(packageFile);
|
124 |
|
125 | expect(pkgInfo.type).toBe('phone');
|
126 | expect(pkgInfo.arch).toBe('anycpu');
|
127 | expect(pkgInfo.buildtype).toBe('debug');
|
128 | });
|
129 |
|
130 | it('spec.7 should get file info correctly for windows 8.1 anycpu debug package', function () {
|
131 | var packageFile = path.join(pkgPath, 'CordovaApp.Windows_0.0.1.0_anycpu_debug_Test', 'CordovaApp.Windows_0.0.1.0_anycpu_debug.appx');
|
132 | var pkgInfo = pkg.getPackageFileInfo(packageFile);
|
133 |
|
134 | expect(pkgInfo.type).toBe('windows');
|
135 | expect(pkgInfo.arch).toBe('anycpu');
|
136 | expect(pkgInfo.buildtype).toBe('debug');
|
137 | });
|
138 |
|
139 | it('spec.8 should get file info correctly for windows 8.1 x64 release package', function () {
|
140 | var packageFile = path.join(pkgPath, 'CordovaApp.Windows_0.0.1.0_x64_Test', 'CordovaApp.Windows_0.0.1.0_x64.appx');
|
141 | var pkgInfo = pkg.getPackageFileInfo(packageFile);
|
142 |
|
143 | expect(pkgInfo.type).toBe('windows');
|
144 | expect(pkgInfo.arch).toBe('x64');
|
145 | expect(pkgInfo.buildtype).toBe('release');
|
146 | });
|
147 |
|
148 | it('spec.9 should get file info correctly for windows 8.1 x86 release package', function () {
|
149 | var packageFile = path.join(pkgPath, 'CordovaApp.Windows_0.0.1.0_x86_Test', 'CordovaApp.Windows_0.0.1.0_x86.appx');
|
150 | var pkgInfo = pkg.getPackageFileInfo(packageFile);
|
151 |
|
152 | expect(pkgInfo.type).toBe('windows');
|
153 | expect(pkgInfo.arch).toBe('x86');
|
154 | expect(pkgInfo.buildtype).toBe('release');
|
155 | });
|
156 | });
|
157 |
|
158 | describe('getAppId method', function () {
|
159 | it('spec.10 should properly get phoneProductId value from manifest', function (done) {
|
160 | var resolve = jasmine.createSpy();
|
161 |
|
162 | Q(pkg.getAppId(pkgRoot))
|
163 | .then(resolve)
|
164 | .finally(function () {
|
165 | expect(resolve).toHaveBeenCalledWith('$guid1$');
|
166 | done();
|
167 | });
|
168 | });
|
169 | });
|
170 |
|
171 | describe('getPackageName method', function () {
|
172 | it('spec.11 should properly get Application Id value from manifest', function (done) {
|
173 | var resolve = jasmine.createSpy();
|
174 |
|
175 | Q(pkg.getAppId(pkgRoot))
|
176 | .then(resolve)
|
177 | .finally(function () {
|
178 | expect(resolve).toHaveBeenCalledWith('$guid1$');
|
179 | done();
|
180 | });
|
181 | });
|
182 | });
|