UNPKG

6.59 kBJavaScriptView Raw
1/**
2 Licensed to the Apache Software Foundation (ASF) under one
3 or more contributor license agreements. See the NOTICE file
4 distributed with this work for additional information
5 regarding copyright ownership. The ASF licenses this file
6 to you under the Apache License, Version 2.0 (the
7 'License'); you may not use this file except in compliance
8 with the License. You may obtain a copy of the License at
9
10 http://www.apache.org/licenses/LICENSE-2.0
11
12 Unless required by applicable law or agreed to in writing,
13 software distributed under the License is distributed on an
14 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 KIND, either express or implied. See the License for the
16 specific language governing permissions and limitations
17 under the License.
18*/
19var path = require('path');
20var rewire = require('rewire');
21var shell = require('shelljs');
22var Q = require('q');
23var platformRoot = '../../template';
24var pkgRoot = './template/';
25var pkgPath = path.join(pkgRoot, 'AppPackages');
26var testPkgPath = './spec/unit/fixtures/DummyProject/AppPackages';
27var pkg = rewire(platformRoot + '/cordova/lib/package.js');
28
29var consoleLogOriginal;
30
31beforeEach(function () {
32 // console output suppression
33 consoleLogOriginal = pkg.__get__('console.log');
34 pkg.__set__('console.log', function () {});
35});
36
37afterEach(function () {
38 pkg.__set__('console.log', consoleLogOriginal);
39});
40
41describe('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
120describe('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
158describe('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
171describe('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});