Skip to content

Commit 1568955

Browse files
author
Anis Kadri
committed
Merge branch 'innovative1-master'
2 parents 59506f1 + 96660f2 commit 1568955

File tree

2 files changed

+109
-0
lines changed

2 files changed

+109
-0
lines changed

lib/pbxProject.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1872,6 +1872,39 @@ pbxProject.prototype.addLocalizationVariantGroup = function(name) {
18721872
return localizationVariantGroup;
18731873
};
18741874

1875+
pbxProject.prototype.addKnownRegion = function (name) {
1876+
if (!this.pbxProjectSection()[this.getFirstProject()['uuid']]['knownRegions']) {
1877+
this.pbxProjectSection()[this.getFirstProject()['uuid']]['knownRegions'] = [];
1878+
}
1879+
if (!this.hasKnownRegion(name)) {
1880+
this.pbxProjectSection()[this.getFirstProject()['uuid']]['knownRegions'].push(name);
1881+
}
1882+
}
1883+
1884+
pbxProject.prototype.removeKnownRegion = function (name) {
1885+
var regions = this.pbxProjectSection()[this.getFirstProject()['uuid']]['knownRegions'];
1886+
if (regions) {
1887+
for (var i = 0; i < regions.length; i++) {
1888+
if (regions[i] === name) {
1889+
regions.splice(i, 1);
1890+
break;
1891+
}
1892+
}
1893+
this.pbxProjectSection()[this.getFirstProject()['uuid']]['knownRegions'] = regions;
1894+
}
1895+
}
1896+
1897+
pbxProject.prototype.hasKnownRegion = function (name) {
1898+
var regions = this.pbxProjectSection()[this.getFirstProject()['uuid']]['knownRegions'];
1899+
if (regions) {
1900+
for (var i in regions) {
1901+
if (regions[i] === name) {
1902+
return true;
1903+
}
1904+
}
1905+
}
1906+
return false;
1907+
}
18751908

18761909
pbxProject.prototype.getPBXObject = function(name) {
18771910
return this.hash.project.objects[name];

test/knownRegions.js

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
var fullProject = require('./fixtures/full-project')
2+
fullProjectStr = JSON.stringify(fullProject),
3+
pbx = require('../lib/pbxProject'),
4+
project = new pbx('.');
5+
6+
function cleanHash() {
7+
return JSON.parse(fullProjectStr);
8+
}
9+
10+
exports.setUp = function (callback) {
11+
project.hash = cleanHash();
12+
callback();
13+
}
14+
15+
exports.addKnownRegion = {
16+
'should add new region to existing knownRegions': function (test) {
17+
var knownRegions = project.pbxProjectSection()[project.getFirstProject()['uuid']]['knownRegions'];
18+
test.equal(knownRegions.indexOf('Spanish'), -1);
19+
20+
project.addKnownRegion('Spanish')
21+
knownRegions = project.pbxProjectSection()[project.getFirstProject()['uuid']]['knownRegions'];
22+
test.notEqual(knownRegions.indexOf('Spanish'), -1);
23+
test.done();
24+
},
25+
26+
'should not add region if it already exists in knownRegions': function (test) {
27+
var numberOfRegions = project.pbxProjectSection()[project.getFirstProject()['uuid']]['knownRegions'].length;
28+
29+
project.addKnownRegion('German');
30+
var newNumberOfRegions = project.pbxProjectSection()[project.getFirstProject()['uuid']]['knownRegions'].length;
31+
test.equal(numberOfRegions, newNumberOfRegions);
32+
test.done();
33+
},
34+
35+
'should create knownRegions array if it does not exist': function (test) {
36+
delete project.pbxProjectSection()[project.getFirstProject()['uuid']]['knownRegions'];
37+
test.ok(!project.pbxProjectSection()[project.getFirstProject()['uuid']]['knownRegions']);
38+
39+
project.addKnownRegion('German')
40+
test.ok(project.pbxProjectSection()[project.getFirstProject()['uuid']]['knownRegions']);
41+
test.done();
42+
},
43+
}
44+
45+
exports.removeKnownRegion = {
46+
'should remove named region from knownRegions': function (test) {
47+
var knownRegions = project.pbxProjectSection()[project.getFirstProject()['uuid']]['knownRegions'];
48+
test.notEqual(knownRegions.indexOf('German'), -1);
49+
50+
project.removeKnownRegion('German');
51+
knownRegions = project.pbxProjectSection()[project.getFirstProject()['uuid']]['knownRegions'];
52+
test.equal(knownRegions.indexOf('German'), -1);
53+
test.done();
54+
},
55+
56+
'should do nothing if named region does not exist in knownRegions': function (test) {
57+
let numberOfRegions = project.pbxProjectSection()[project.getFirstProject()['uuid']]['knownRegions'].length;
58+
59+
project.removeKnownRegion('Korean');
60+
let newNumberOfRegions = project.pbxProjectSection()[project.getFirstProject()['uuid']]['knownRegions'].length;
61+
test.equal(numberOfRegions, newNumberOfRegions);
62+
test.done();
63+
},
64+
}
65+
66+
exports.hasKnownRegion = {
67+
'should return true if named region exists in knownRegions': function (test) {
68+
test.ok(project.hasKnownRegion('German'));
69+
test.done();
70+
},
71+
72+
'should return false if named region does not exist in knownRegions': function (test) {
73+
test.ok(!project.hasKnownRegion('Ducth'));
74+
test.done();
75+
},
76+
}

0 commit comments

Comments
 (0)