kintsugi 0.7.5 → 0.7.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/kintsugi/apply_change_to_project.rb +8 -9
- data/lib/kintsugi/version.rb +1 -1
- data/spec/kintsugi_apply_change_to_project_spec.rb +205 -291
- metadata +2 -5
@@ -21,7 +21,6 @@ describe Kintsugi, :apply_change_to_project do
|
|
21
21
|
|
22
22
|
before do
|
23
23
|
Kintsugi::Settings.interactive_resolution = false
|
24
|
-
base_project.save
|
25
24
|
end
|
26
25
|
|
27
26
|
after do
|
@@ -32,14 +31,14 @@ describe Kintsugi, :apply_change_to_project do
|
|
32
31
|
|
33
32
|
it "not raises when change is nil or doesn't have root object" do
|
34
33
|
expect {
|
35
|
-
theirs_project = create_copy_of_project(base_project
|
34
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
36
35
|
described_class.apply_change_to_project(base_project, nil, theirs_project)
|
37
36
|
described_class.apply_change_to_project(base_project, {}, theirs_project)
|
38
37
|
}.not_to raise_error
|
39
38
|
end
|
40
39
|
|
41
40
|
it "adds new target" do
|
42
|
-
theirs_project = create_copy_of_project(base_project
|
41
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
43
42
|
theirs_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
44
43
|
|
45
44
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -50,7 +49,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
50
49
|
end
|
51
50
|
|
52
51
|
it "adds new aggregate target" do
|
53
|
-
theirs_project = create_copy_of_project(base_project
|
52
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
54
53
|
theirs_project.new_aggregate_target("foo")
|
55
54
|
|
56
55
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -61,7 +60,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
61
60
|
end
|
62
61
|
|
63
62
|
it "adds package reference" do
|
64
|
-
theirs_project = create_copy_of_project(base_project
|
63
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
65
64
|
|
66
65
|
theirs_project.root_object.package_references <<
|
67
66
|
create_remote_swift_package_reference(theirs_project)
|
@@ -74,7 +73,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
74
73
|
end
|
75
74
|
|
76
75
|
it "adds new subproject" do
|
77
|
-
theirs_project = create_copy_of_project(base_project
|
76
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
78
77
|
add_new_subproject_to_project(theirs_project, "foo", "foo")
|
79
78
|
|
80
79
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -93,9 +92,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
93
92
|
create_reference_proxy_from_product_reference(base_project,
|
94
93
|
base_project.root_object.project_references[0][:project_ref],
|
95
94
|
subproject.products_group.files[-1])
|
96
|
-
base_project.save
|
97
95
|
|
98
|
-
theirs_project = create_copy_of_project(base_project
|
96
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
99
97
|
theirs_project.root_object.project_references[0][:product_group].children[-1].remove_from_project
|
100
98
|
|
101
99
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -107,7 +105,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
107
105
|
|
108
106
|
# Checks that the order the changes are applied in is correct.
|
109
107
|
it "adds new subproject and reference to its framework" do
|
110
|
-
theirs_project = create_copy_of_project(base_project
|
108
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
111
109
|
add_new_subproject_to_project(theirs_project, "foo", "foo")
|
112
110
|
|
113
111
|
target = theirs_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
@@ -123,12 +121,11 @@ describe Kintsugi, :apply_change_to_project do
|
|
123
121
|
end
|
124
122
|
|
125
123
|
it "raises if adding subproject whose file reference isn't found" do
|
126
|
-
ours_project = create_copy_of_project(base_project
|
124
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
127
125
|
|
128
126
|
add_new_subproject_to_project(base_project, "foo", "foo")
|
129
|
-
base_project.save
|
130
127
|
|
131
|
-
theirs_project = create_copy_of_project(base_project
|
128
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
132
129
|
|
133
130
|
base_project.root_object.project_references.pop
|
134
131
|
|
@@ -141,12 +138,11 @@ describe Kintsugi, :apply_change_to_project do
|
|
141
138
|
|
142
139
|
it "ignores removal of a product reference that was already removed" do
|
143
140
|
base_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
144
|
-
base_project.save
|
145
141
|
|
146
|
-
ours_project = create_copy_of_project(base_project
|
142
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
147
143
|
ours_project.targets[0].product_reference.remove_from_project
|
148
144
|
|
149
|
-
theirs_project = create_copy_of_project(base_project
|
145
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
150
146
|
theirs_project.targets[0].product_reference.remove_from_project
|
151
147
|
|
152
148
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -161,14 +157,12 @@ describe Kintsugi, :apply_change_to_project do
|
|
161
157
|
|
162
158
|
before do
|
163
159
|
base_project.main_group.new_reference(filepath)
|
164
|
-
base_project.save
|
165
160
|
end
|
166
161
|
|
167
162
|
it "moves file to another group" do
|
168
163
|
base_project.main_group.find_subpath("new_group", true)
|
169
|
-
base_project.save
|
170
164
|
|
171
|
-
theirs_project = create_copy_of_project(base_project
|
165
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
172
166
|
new_group = theirs_project.main_group.find_subpath("new_group")
|
173
167
|
file_reference = theirs_project.main_group.find_file_by_path(filepath)
|
174
168
|
file_reference.move(new_group)
|
@@ -182,9 +176,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
182
176
|
|
183
177
|
it "raises if trying to move file to another group that no longer exists" do
|
184
178
|
base_project.main_group.find_subpath("new_group", true)
|
185
|
-
base_project.save
|
186
179
|
|
187
|
-
theirs_project = create_copy_of_project(base_project
|
180
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
188
181
|
new_group = theirs_project.main_group.find_subpath("new_group")
|
189
182
|
file_reference = theirs_project.main_group.find_file_by_path(filepath)
|
190
183
|
file_reference.move(new_group)
|
@@ -200,9 +193,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
200
193
|
|
201
194
|
it "raises if trying to add file to a group that no longer exists" do
|
202
195
|
base_project.main_group.find_subpath("new_group", true)
|
203
|
-
base_project.save
|
204
196
|
|
205
|
-
theirs_project = create_copy_of_project(base_project
|
197
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
206
198
|
theirs_project.main_group.find_subpath("new_group").new_reference("foo")
|
207
199
|
|
208
200
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -216,17 +208,15 @@ describe Kintsugi, :apply_change_to_project do
|
|
216
208
|
|
217
209
|
it "does nothing if trying to remove a file from a group that no longer exists" do
|
218
210
|
base_project.main_group.find_subpath("new_group", true).new_reference("foo")
|
219
|
-
base_project.save
|
220
211
|
|
221
|
-
theirs_project = create_copy_of_project(base_project
|
212
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
222
213
|
theirs_project.main_group.find_subpath("new_group/foo").remove_from_project
|
223
214
|
|
224
215
|
changes_to_apply = get_diff(theirs_project, base_project)
|
225
216
|
|
226
217
|
base_project.main_group.find_subpath("new_group").remove_from_project
|
227
218
|
|
228
|
-
base_project
|
229
|
-
expected_project = create_copy_of_project(base_project.path, "expected")
|
219
|
+
expected_project = create_copy_of_project(base_project, "expected")
|
230
220
|
|
231
221
|
described_class.apply_change_to_project(base_project, changes_to_apply, theirs_project)
|
232
222
|
|
@@ -236,9 +226,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
236
226
|
it "raises when a file is split into two" do
|
237
227
|
base_project.main_group.find_subpath("new_group", true)
|
238
228
|
base_project.main_group.find_subpath("new_group2", true)
|
239
|
-
base_project.save
|
240
229
|
|
241
|
-
theirs_project = create_copy_of_project(base_project
|
230
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
242
231
|
new_group = theirs_project.main_group.find_subpath("new_group")
|
243
232
|
file_reference = theirs_project.main_group.find_file_by_path(filepath)
|
244
233
|
file_reference.move(new_group)
|
@@ -252,7 +241,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
252
241
|
end
|
253
242
|
|
254
243
|
it "adds file to new group" do
|
255
|
-
theirs_project = create_copy_of_project(base_project
|
244
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
256
245
|
|
257
246
|
theirs_project.main_group.find_subpath("new_group", true).new_reference(filepath)
|
258
247
|
|
@@ -265,9 +254,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
265
254
|
|
266
255
|
it "removes group" do
|
267
256
|
base_project.main_group.find_subpath("new_group", true)
|
268
|
-
base_project.save
|
269
257
|
|
270
|
-
theirs_project = create_copy_of_project(base_project
|
258
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
271
259
|
theirs_project["new_group"].remove_from_project
|
272
260
|
|
273
261
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -280,9 +268,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
280
268
|
it "moves a group with files in it" do
|
281
269
|
new_group = base_project.main_group.find_subpath("new_group", true)
|
282
270
|
new_group.new_reference("new_file")
|
283
|
-
base_project.save
|
284
271
|
|
285
|
-
theirs_project = create_copy_of_project(base_project
|
272
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
286
273
|
new_group2 = theirs_project.main_group.find_subpath("new_group2", true)
|
287
274
|
theirs_project["new_group"].move(new_group2)
|
288
275
|
|
@@ -295,9 +282,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
295
282
|
|
296
283
|
it "raises when trying to add a group to a group that no longer exists" do
|
297
284
|
base_project.main_group.find_subpath("new_group", true)
|
298
|
-
base_project.save
|
299
285
|
|
300
|
-
theirs_project = create_copy_of_project(base_project
|
286
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
301
287
|
theirs_project["new_group"].find_subpath("sub_group", true)
|
302
288
|
|
303
289
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -312,9 +298,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
312
298
|
it "raises when trying to move a group to a group that no longer exists" do
|
313
299
|
base_project.main_group.find_subpath("new_group", true)
|
314
300
|
base_project.main_group.find_subpath("other_group", true)
|
315
|
-
base_project.save
|
316
301
|
|
317
|
-
theirs_project = create_copy_of_project(base_project
|
302
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
318
303
|
theirs_project["other_group"].move(theirs_project["new_group"])
|
319
304
|
|
320
305
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -329,9 +314,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
329
314
|
it "moves a group with a group in it" do
|
330
315
|
new_group = base_project.main_group.find_subpath("new_group", true)
|
331
316
|
new_group.find_subpath("sub_group", true)
|
332
|
-
base_project.save
|
333
317
|
|
334
|
-
theirs_project = create_copy_of_project(base_project
|
318
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
335
319
|
new_group2 = theirs_project.main_group.find_subpath("new_group2", true)
|
336
320
|
theirs_project["new_group"].move(new_group2)
|
337
321
|
|
@@ -346,9 +330,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
346
330
|
new_group = base_project.main_group.find_subpath("new_group", true)
|
347
331
|
sub_group = new_group.find_subpath("sub_group", true)
|
348
332
|
sub_group.new_reference("new_file")
|
349
|
-
base_project.save
|
350
333
|
|
351
|
-
theirs_project = create_copy_of_project(base_project
|
334
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
352
335
|
new_group2 = theirs_project.main_group.find_subpath("new_group2", true)
|
353
336
|
theirs_project["new_group"].move(new_group2)
|
354
337
|
|
@@ -360,7 +343,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
360
343
|
end
|
361
344
|
|
362
345
|
it "adds file with include in index and last known file type as nil" do
|
363
|
-
theirs_project = create_copy_of_project(base_project
|
346
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
364
347
|
file_reference = theirs_project.main_group.new_reference("#{filepath}.h")
|
365
348
|
file_reference.include_in_index = nil
|
366
349
|
file_reference.last_known_file_type = nil
|
@@ -373,7 +356,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
373
356
|
end
|
374
357
|
|
375
358
|
it "renames file" do
|
376
|
-
theirs_project = create_copy_of_project(base_project
|
359
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
377
360
|
file_reference = theirs_project.main_group.find_file_by_path(filepath)
|
378
361
|
file_reference.path = "newFoo"
|
379
362
|
|
@@ -385,7 +368,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
385
368
|
end
|
386
369
|
|
387
370
|
it "removes file" do
|
388
|
-
theirs_project = create_copy_of_project(base_project
|
371
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
389
372
|
theirs_project.main_group.find_file_by_path(filepath).remove_from_project
|
390
373
|
|
391
374
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -399,9 +382,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
399
382
|
target = base_project.new_target("com.apple.product-type.library.static", "bar", :ios)
|
400
383
|
file_reference = base_project.main_group.find_file_by_path(filepath)
|
401
384
|
target.frameworks_build_phase.add_file_reference(file_reference)
|
402
|
-
base_project.save
|
403
385
|
|
404
|
-
theirs_project = create_copy_of_project(base_project
|
386
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
405
387
|
file_reference = theirs_project.main_group.find_file_by_path(filepath)
|
406
388
|
file_reference.include_in_index = "4"
|
407
389
|
|
@@ -414,9 +396,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
414
396
|
|
415
397
|
it "ignores removal of a non-existent group" do
|
416
398
|
base_project.main_group.find_subpath("new_group", true)
|
417
|
-
base_project.save
|
418
399
|
|
419
|
-
theirs_project = create_copy_of_project(base_project
|
400
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
420
401
|
theirs_project.main_group.children.delete_at(-1)
|
421
402
|
|
422
403
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -433,9 +414,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
433
414
|
target.source_build_phase.add_file_reference(
|
434
415
|
base_project.main_group.find_file_by_path(filepath)
|
435
416
|
)
|
436
|
-
base_project.save
|
437
417
|
|
438
|
-
theirs_project = create_copy_of_project(base_project
|
418
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
439
419
|
file_reference = theirs_project.main_group.find_file_by_path(filepath)
|
440
420
|
file_reference.build_files.each do |build_file|
|
441
421
|
build_file.referrers.each do |referrer|
|
@@ -452,7 +432,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
452
432
|
end
|
453
433
|
|
454
434
|
it "adds file inside a group that has a path on filesystem" do
|
455
|
-
theirs_project = create_copy_of_project(base_project
|
435
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
456
436
|
|
457
437
|
new_group = theirs_project.main_group.find_subpath("new_group", true)
|
458
438
|
new_group.path = "some_path"
|
@@ -467,7 +447,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
467
447
|
end
|
468
448
|
|
469
449
|
it "handles subfile changes" do
|
470
|
-
theirs_project = create_copy_of_project(base_project
|
450
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
471
451
|
|
472
452
|
theirs_project.main_group.find_file_by_path(filepath).explicit_file_type = "bar"
|
473
453
|
theirs_project.main_group.find_file_by_path(filepath).include_in_index = "0"
|
@@ -482,9 +462,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
482
462
|
|
483
463
|
it "handles moved file to an existing group with a different path on filesystem" do
|
484
464
|
base_project.main_group.find_subpath("new_group", true).path = "some_path"
|
485
|
-
base_project.save
|
486
465
|
|
487
|
-
theirs_project = create_copy_of_project(base_project
|
466
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
488
467
|
new_group = theirs_project.main_group.find_subpath("new_group")
|
489
468
|
theirs_project.main_group.find_file_by_path(filepath).move(new_group)
|
490
469
|
|
@@ -497,12 +476,11 @@ describe Kintsugi, :apply_change_to_project do
|
|
497
476
|
|
498
477
|
describe "dealing with unexpected change" do
|
499
478
|
it "raises if applying change to a file whose containing group doesn't exist" do
|
500
|
-
ours_project = create_copy_of_project(base_project
|
479
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
501
480
|
new_group = ours_project.main_group.find_subpath("new_group", true)
|
502
481
|
ours_project.main_group.find_file_by_path(filepath).move(new_group)
|
503
|
-
ours_project.save
|
504
482
|
|
505
|
-
theirs_project = create_copy_of_project(base_project
|
483
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
506
484
|
theirs_project.main_group.find_file_by_path(filepath).explicit_file_type = "bar"
|
507
485
|
|
508
486
|
ours_project.main_group.find_subpath("new_group").remove_from_project
|
@@ -515,11 +493,10 @@ describe Kintsugi, :apply_change_to_project do
|
|
515
493
|
end
|
516
494
|
|
517
495
|
it "raises if applying change to a file that doesn't exist" do
|
518
|
-
ours_project = create_copy_of_project(base_project
|
496
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
519
497
|
ours_project.main_group.find_file_by_path(filepath).remove_from_project
|
520
|
-
ours_project.save
|
521
498
|
|
522
|
-
theirs_project = create_copy_of_project(base_project
|
499
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
523
500
|
theirs_project.main_group.find_file_by_path(filepath).explicit_file_type = "bar"
|
524
501
|
|
525
502
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -530,16 +507,15 @@ describe Kintsugi, :apply_change_to_project do
|
|
530
507
|
end
|
531
508
|
|
532
509
|
it "ignores removal of a file whose group doesn't exist" do
|
533
|
-
ours_project = create_copy_of_project(base_project
|
510
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
534
511
|
ours_project.main_group.remove_from_project
|
535
|
-
ours_project.save
|
536
512
|
|
537
|
-
theirs_project = create_copy_of_project(base_project
|
513
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
538
514
|
theirs_project.main_group.find_file_by_path(filepath).remove_from_project
|
539
515
|
|
540
516
|
changes_to_apply = get_diff(theirs_project, base_project)
|
541
517
|
|
542
|
-
ours_project_before_applying_changes = create_copy_of_project(ours_project
|
518
|
+
ours_project_before_applying_changes = create_copy_of_project(ours_project, "ours")
|
543
519
|
|
544
520
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
545
521
|
|
@@ -547,10 +523,10 @@ describe Kintsugi, :apply_change_to_project do
|
|
547
523
|
end
|
548
524
|
|
549
525
|
it "ignores removal of non-existent file" do
|
550
|
-
ours_project = create_copy_of_project(base_project
|
526
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
551
527
|
ours_project.main_group.find_file_by_path(filepath).remove_from_project
|
552
528
|
|
553
|
-
theirs_project = create_copy_of_project(base_project
|
529
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
554
530
|
theirs_project.main_group.find_file_by_path(filepath).remove_from_project
|
555
531
|
|
556
532
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -565,16 +541,11 @@ describe Kintsugi, :apply_change_to_project do
|
|
565
541
|
describe "target related changes" do
|
566
542
|
let!(:target) { base_project.new_target("com.apple.product-type.library.static", "foo", :ios) }
|
567
543
|
|
568
|
-
before do
|
569
|
-
base_project.save
|
570
|
-
end
|
571
|
-
|
572
544
|
it "moves file that is referenced by a target from main group to a new group" do
|
573
545
|
file_reference = base_project.main_group.new_reference("bar")
|
574
546
|
base_project.targets[0].source_build_phase.add_file_reference(file_reference)
|
575
|
-
base_project.save
|
576
547
|
|
577
|
-
theirs_project = create_copy_of_project(base_project
|
548
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
578
549
|
new_group = theirs_project.main_group.find_subpath("new_group", true)
|
579
550
|
file_reference = theirs_project.main_group.find_file_by_path("bar")
|
580
551
|
file_reference.move(new_group)
|
@@ -591,9 +562,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
591
562
|
|
592
563
|
base_project.new_target("com.apple.product-type.library.static", "bar", :ios)
|
593
564
|
base_project.main_group.find_subpath("new_group", true).new_reference("file1.swift")
|
594
|
-
base_project.save
|
595
565
|
|
596
|
-
theirs_project = create_copy_of_project(base_project
|
566
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
597
567
|
second_target = theirs_project.targets[1]
|
598
568
|
second_file_reference = theirs_project.main_group.find_subpath("new_group/file1.swift")
|
599
569
|
second_target.source_build_phase.add_file_reference(second_file_reference)
|
@@ -608,9 +578,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
608
578
|
it "moves file that is referenced by a target from a group to the main group" do
|
609
579
|
file_reference = base_project.main_group.find_subpath("new_group", true).new_reference("bar")
|
610
580
|
base_project.targets[0].source_build_phase.add_file_reference(file_reference)
|
611
|
-
base_project.save
|
612
581
|
|
613
|
-
theirs_project = create_copy_of_project(base_project
|
582
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
614
583
|
file_reference = theirs_project["new_group/bar"]
|
615
584
|
file_reference.move(theirs_project.main_group)
|
616
585
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -623,9 +592,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
623
592
|
it "moves file that is referenced by a target and has a different file encoding" do
|
624
593
|
file_reference = base_project.main_group.find_subpath("new_group", true).new_reference("bar")
|
625
594
|
target.frameworks_build_phase.add_file_reference(file_reference)
|
626
|
-
base_project.save
|
627
595
|
|
628
|
-
theirs_project = create_copy_of_project(base_project
|
596
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
629
597
|
file_reference = theirs_project["new_group/bar"]
|
630
598
|
file_reference.move(theirs_project.main_group)
|
631
599
|
file_reference.fileEncoding = "4"
|
@@ -648,9 +616,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
648
616
|
# Removes the container item proxy to make sure the display name of the reference proxy is the
|
649
617
|
# same as the file reference.
|
650
618
|
base_project.root_object.project_references[-1][:product_group].children[0].remote_ref.remove_from_project
|
651
|
-
base_project.save
|
652
619
|
|
653
|
-
theirs_project = create_copy_of_project(base_project
|
620
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
654
621
|
|
655
622
|
build_phase = theirs_project.targets[0].frameworks_build_phase
|
656
623
|
build_phase.files.find { |build_file| build_file.display_name == "baz" }.remove_from_project
|
@@ -666,7 +633,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
666
633
|
end
|
667
634
|
|
668
635
|
it "adds package product dependency to target" do
|
669
|
-
theirs_project = create_copy_of_project(base_project
|
636
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
670
637
|
theirs_project.targets[0].package_product_dependencies <<
|
671
638
|
create_swift_package_product_dependency(theirs_project)
|
672
639
|
|
@@ -688,9 +655,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
688
655
|
subproject_reference_proxy.remote_ref.remove_from_project
|
689
656
|
base_project.targets[0].frameworks_build_phase.add_file_reference(subproject_reference_proxy)
|
690
657
|
|
691
|
-
base_project.save
|
692
658
|
|
693
|
-
theirs_project = create_copy_of_project(base_project
|
659
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
694
660
|
|
695
661
|
file_reference = theirs_project.main_group.new_reference("bar")
|
696
662
|
file_reference.name = framework_filename
|
@@ -719,9 +685,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
719
685
|
container_proxy = build_file.file_ref.remote_ref
|
720
686
|
build_file.file_ref.remote_ref = nil
|
721
687
|
|
722
|
-
base_project.save
|
723
688
|
|
724
|
-
theirs_project = create_copy_of_project(base_project
|
689
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
725
690
|
|
726
691
|
theirs_project.targets[0].frameworks_build_phase.files[-1].file_ref.remote_ref =
|
727
692
|
container_proxy
|
@@ -736,9 +701,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
736
701
|
it "adds subproject target and adds reference to it" do
|
737
702
|
framework_filename = "baz"
|
738
703
|
subproject = add_new_subproject_to_project(base_project, "subproj", framework_filename)
|
739
|
-
base_project.save
|
740
704
|
|
741
|
-
theirs_project = create_copy_of_project(base_project
|
705
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
742
706
|
|
743
707
|
subproject.new_target("com.apple.product-type.library.static", "bari", :ios)
|
744
708
|
|
@@ -761,9 +725,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
761
725
|
|
762
726
|
it "adds new build file" do
|
763
727
|
base_project.main_group.new_reference("bar")
|
764
|
-
base_project.save
|
765
728
|
|
766
|
-
theirs_project = create_copy_of_project(base_project
|
729
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
767
730
|
|
768
731
|
file_reference = theirs_project.main_group.files.find { |file| file.display_name == "bar" }
|
769
732
|
theirs_project.targets[0].frameworks_build_phase.add_file_reference(file_reference)
|
@@ -778,14 +741,13 @@ describe Kintsugi, :apply_change_to_project do
|
|
778
741
|
it "adds build when there is a build file without file ref" do
|
779
742
|
target = base_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
780
743
|
target.frameworks_build_phase.add_file_reference(nil)
|
781
|
-
base_project.save
|
782
744
|
|
783
|
-
theirs_project = create_copy_of_project(base_project
|
745
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
784
746
|
file_reference = theirs_project.main_group.new_reference("bar")
|
785
747
|
theirs_project.targets[0].frameworks_build_phase.add_file_reference(file_reference)
|
786
748
|
|
787
749
|
changes_to_apply = get_diff(theirs_project, base_project)
|
788
|
-
other_project = create_copy_of_project(base_project
|
750
|
+
other_project = create_copy_of_project(base_project, "theirs")
|
789
751
|
described_class.apply_change_to_project(other_project, changes_to_apply, theirs_project)
|
790
752
|
|
791
753
|
expect(other_project).to be_equivalent_to_project(theirs_project)
|
@@ -793,9 +755,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
793
755
|
|
794
756
|
it "adds product ref to build file" do
|
795
757
|
base_project.main_group.new_reference("bar")
|
796
|
-
base_project.save
|
797
758
|
|
798
|
-
theirs_project = create_copy_of_project(base_project
|
759
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
799
760
|
|
800
761
|
file_reference = theirs_project.main_group.files.find { |file| file.display_name == "bar" }
|
801
762
|
build_file =
|
@@ -813,9 +774,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
813
774
|
it "adds build file to a file reference that already exists" do
|
814
775
|
base_project.main_group.new_reference("bar")
|
815
776
|
base_project.main_group.new_reference("bar")
|
816
|
-
base_project.save
|
817
777
|
|
818
|
-
theirs_project = create_copy_of_project(base_project
|
778
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
819
779
|
|
820
780
|
theirs_file_reference = theirs_project.main_group.files.find do |file|
|
821
781
|
!file.referrers.find { |referrer| referrer.is_a?(Xcodeproj::Project::PBXBuildFile) } &&
|
@@ -834,9 +794,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
834
794
|
file_reference = base_project.main_group.new_reference("bar")
|
835
795
|
build_file = base_project.targets[0].frameworks_build_phase.add_file_reference(file_reference)
|
836
796
|
build_file.file_ref = nil
|
837
|
-
base_project.save
|
838
797
|
|
839
|
-
theirs_project = create_copy_of_project(base_project
|
798
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
840
799
|
|
841
800
|
file_reference = theirs_project.main_group.files.find { |file| file.display_name == "bar" }
|
842
801
|
theirs_project.targets[0].frameworks_build_phase.files[-1].file_ref = file_reference
|
@@ -850,9 +809,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
850
809
|
|
851
810
|
it "ignores build file without file reference" do
|
852
811
|
base_project.main_group.new_reference("bar")
|
853
|
-
base_project.save
|
854
812
|
|
855
|
-
theirs_project = create_copy_of_project(base_project
|
813
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
856
814
|
file_reference = theirs_project.main_group.files.find { |file| file.display_name == "bar" }
|
857
815
|
build_file =
|
858
816
|
theirs_project.targets[0].frameworks_build_phase.add_file_reference(file_reference)
|
@@ -860,14 +818,14 @@ describe Kintsugi, :apply_change_to_project do
|
|
860
818
|
|
861
819
|
changes_to_apply = get_diff(theirs_project, base_project)
|
862
820
|
|
863
|
-
other_project = create_copy_of_project(base_project
|
821
|
+
other_project = create_copy_of_project(base_project, "other")
|
864
822
|
described_class.apply_change_to_project(other_project, changes_to_apply, theirs_project)
|
865
823
|
|
866
824
|
expect(other_project).to be_equivalent_to_project(base_project)
|
867
825
|
end
|
868
826
|
|
869
827
|
it "adds new build rule" do
|
870
|
-
theirs_project = create_copy_of_project(base_project
|
828
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
871
829
|
|
872
830
|
build_rule = theirs_project.new(Xcodeproj::Project::PBXBuildRule)
|
873
831
|
build_rule.compiler_spec = "com.apple.compilers.proxy.script"
|
@@ -893,7 +851,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
893
851
|
|
894
852
|
describe "build settings" do
|
895
853
|
it "adds new string build setting" do
|
896
|
-
theirs_project = create_copy_of_project(base_project
|
854
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
897
855
|
|
898
856
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
899
857
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "$(SRCROOT)/../Bar"
|
@@ -910,7 +868,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
910
868
|
base_project.targets[0].build_configurations.each do |configuration|
|
911
869
|
configuration.build_settings = {}
|
912
870
|
end
|
913
|
-
theirs_project = create_copy_of_project(base_project
|
871
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
914
872
|
|
915
873
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
916
874
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = [
|
@@ -927,7 +885,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
927
885
|
end
|
928
886
|
|
929
887
|
it "adds new hash build setting" do
|
930
|
-
theirs_project = create_copy_of_project(base_project
|
888
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
931
889
|
|
932
890
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
933
891
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = [
|
@@ -950,7 +908,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
950
908
|
]
|
951
909
|
end
|
952
910
|
|
953
|
-
theirs_project = create_copy_of_project(base_project
|
911
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
954
912
|
|
955
913
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
956
914
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = [
|
@@ -967,21 +925,21 @@ describe Kintsugi, :apply_change_to_project do
|
|
967
925
|
end
|
968
926
|
|
969
927
|
it "adds array value to an existing string if no removed value" do
|
970
|
-
theirs_project = create_copy_of_project(base_project
|
928
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
971
929
|
|
972
930
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
973
931
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = %w[bar foo]
|
974
932
|
end
|
975
933
|
changes_to_apply = get_diff(theirs_project, base_project)
|
976
934
|
|
977
|
-
ours_project = create_copy_of_project(base_project
|
935
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
978
936
|
ours_project.targets[0].build_configurations.each do |configuration|
|
979
937
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "baz"
|
980
938
|
end
|
981
939
|
|
982
940
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
983
941
|
|
984
|
-
expected_project = create_copy_of_project(base_project
|
942
|
+
expected_project = create_copy_of_project(base_project, "expected")
|
985
943
|
expected_project.targets[0].build_configurations.each do |configuration|
|
986
944
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = %w[bar foo baz]
|
987
945
|
end
|
@@ -989,21 +947,21 @@ describe Kintsugi, :apply_change_to_project do
|
|
989
947
|
end
|
990
948
|
|
991
949
|
it "adds string value to existing array value if no removed value" do
|
992
|
-
theirs_project = create_copy_of_project(base_project
|
950
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
993
951
|
|
994
952
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
995
953
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "baz"
|
996
954
|
end
|
997
955
|
changes_to_apply = get_diff(theirs_project, base_project)
|
998
956
|
|
999
|
-
ours_project = create_copy_of_project(base_project
|
957
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1000
958
|
ours_project.targets[0].build_configurations.each do |configuration|
|
1001
959
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = %w[bar foo]
|
1002
960
|
end
|
1003
961
|
|
1004
962
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
1005
963
|
|
1006
|
-
expected_project = create_copy_of_project(base_project
|
964
|
+
expected_project = create_copy_of_project(base_project, "expected")
|
1007
965
|
expected_project.targets[0].build_configurations.each do |configuration|
|
1008
966
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = %w[bar foo baz]
|
1009
967
|
end
|
@@ -1017,9 +975,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1017
975
|
"$(SRCROOT)/../Bar"
|
1018
976
|
]
|
1019
977
|
end
|
1020
|
-
base_project.save
|
1021
978
|
|
1022
|
-
theirs_project = create_copy_of_project(base_project
|
979
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1023
980
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
1024
981
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = nil
|
1025
982
|
end
|
@@ -1035,9 +992,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1035
992
|
base_project.targets[0].build_configurations.each do |configuration|
|
1036
993
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "bar"
|
1037
994
|
end
|
1038
|
-
base_project.save
|
1039
995
|
|
1040
|
-
theirs_project = create_copy_of_project(base_project
|
996
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1041
997
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
1042
998
|
configuration.build_settings =
|
1043
999
|
configuration.build_settings.reject { |key, _| key == "HEADER_SEARCH_PATHS" }
|
@@ -1054,9 +1010,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1054
1010
|
base_project.targets[0].build_configurations.each do |configuration|
|
1055
1011
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "bar"
|
1056
1012
|
end
|
1057
|
-
base_project.save
|
1058
1013
|
|
1059
|
-
theirs_project = create_copy_of_project(base_project
|
1014
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1060
1015
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
1061
1016
|
configuration.build_settings = nil
|
1062
1017
|
end
|
@@ -1073,14 +1028,13 @@ describe Kintsugi, :apply_change_to_project do
|
|
1073
1028
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "bar"
|
1074
1029
|
configuration.build_settings["foo"] = "baz"
|
1075
1030
|
end
|
1076
|
-
base_project.save
|
1077
1031
|
|
1078
|
-
theirs_project = create_copy_of_project(base_project
|
1032
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1079
1033
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
1080
1034
|
configuration.build_settings = nil
|
1081
1035
|
end
|
1082
1036
|
|
1083
|
-
ours_project = create_copy_of_project(base_project
|
1037
|
+
ours_project = create_copy_of_project(base_project, "theirs")
|
1084
1038
|
ours_project.targets[0].build_configurations.each do |configuration|
|
1085
1039
|
configuration.build_settings["foo"] = nil
|
1086
1040
|
end
|
@@ -1093,14 +1047,13 @@ describe Kintsugi, :apply_change_to_project do
|
|
1093
1047
|
end
|
1094
1048
|
|
1095
1049
|
it "removes value if existing is string and removed is array that contains it" do
|
1096
|
-
theirs_project = create_copy_of_project(base_project
|
1050
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1097
1051
|
|
1098
1052
|
base_project.targets[0].build_configurations.each do |configuration|
|
1099
1053
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "bar"
|
1100
1054
|
end
|
1101
|
-
base_project.save
|
1102
1055
|
|
1103
|
-
before_theirs_project = create_copy_of_project(base_project
|
1056
|
+
before_theirs_project = create_copy_of_project(base_project, "before_theirs")
|
1104
1057
|
before_theirs_project.targets[0].build_configurations.each do |configuration|
|
1105
1058
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = ["bar"]
|
1106
1059
|
end
|
@@ -1113,14 +1066,13 @@ describe Kintsugi, :apply_change_to_project do
|
|
1113
1066
|
end
|
1114
1067
|
|
1115
1068
|
it "removes value if removed value is string and existing is array that contains it" do
|
1116
|
-
theirs_project = create_copy_of_project(base_project
|
1069
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1117
1070
|
|
1118
1071
|
base_project.targets[0].build_configurations.each do |configuration|
|
1119
1072
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = ["bar"]
|
1120
1073
|
end
|
1121
|
-
base_project.save
|
1122
1074
|
|
1123
|
-
before_theirs_project = create_copy_of_project(base_project
|
1075
|
+
before_theirs_project = create_copy_of_project(base_project, "before_theirs")
|
1124
1076
|
before_theirs_project.targets[0].build_configurations.each do |configuration|
|
1125
1077
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "bar"
|
1126
1078
|
end
|
@@ -1134,14 +1086,13 @@ describe Kintsugi, :apply_change_to_project do
|
|
1134
1086
|
|
1135
1087
|
it "removes value if existing is string and removed is array that contains it among other " \
|
1136
1088
|
"values" do
|
1137
|
-
theirs_project = create_copy_of_project(base_project
|
1089
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1138
1090
|
|
1139
1091
|
base_project.targets[0].build_configurations.each do |configuration|
|
1140
1092
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "bar"
|
1141
1093
|
end
|
1142
|
-
base_project.save
|
1143
1094
|
|
1144
|
-
before_theirs_project = create_copy_of_project(base_project
|
1095
|
+
before_theirs_project = create_copy_of_project(base_project, "before_theirs")
|
1145
1096
|
before_theirs_project.targets[0].build_configurations.each do |configuration|
|
1146
1097
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = %w[bar baz]
|
1147
1098
|
end
|
@@ -1149,9 +1100,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1149
1100
|
changes_to_apply = get_diff(theirs_project, before_theirs_project)
|
1150
1101
|
|
1151
1102
|
described_class.apply_change_to_project(base_project, changes_to_apply, theirs_project)
|
1152
|
-
base_project.save
|
1153
1103
|
|
1154
|
-
expected_project = create_copy_of_project(base_project
|
1104
|
+
expected_project = create_copy_of_project(base_project, "expected")
|
1155
1105
|
expected_project.targets[0].build_configurations.each do |configuration|
|
1156
1106
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = nil
|
1157
1107
|
end
|
@@ -1160,14 +1110,13 @@ describe Kintsugi, :apply_change_to_project do
|
|
1160
1110
|
|
1161
1111
|
it "changes to a single string value if removed is string and existing is array that " \
|
1162
1112
|
"contains it among another value" do
|
1163
|
-
theirs_project = create_copy_of_project(base_project
|
1113
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1164
1114
|
|
1165
1115
|
base_project.targets[0].build_configurations.each do |configuration|
|
1166
1116
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = %w[bar baz]
|
1167
1117
|
end
|
1168
|
-
base_project.save
|
1169
1118
|
|
1170
|
-
before_theirs_project = create_copy_of_project(base_project
|
1119
|
+
before_theirs_project = create_copy_of_project(base_project, "before_theirs")
|
1171
1120
|
before_theirs_project.targets[0].build_configurations.each do |configuration|
|
1172
1121
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "bar"
|
1173
1122
|
end
|
@@ -1175,9 +1124,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1175
1124
|
changes_to_apply = get_diff(theirs_project, before_theirs_project)
|
1176
1125
|
|
1177
1126
|
described_class.apply_change_to_project(base_project, changes_to_apply, theirs_project)
|
1178
|
-
base_project.save
|
1179
1127
|
|
1180
|
-
expected_project = create_copy_of_project(base_project
|
1128
|
+
expected_project = create_copy_of_project(base_project, "expected")
|
1181
1129
|
expected_project.targets[0].build_configurations.each do |configuration|
|
1182
1130
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "baz"
|
1183
1131
|
end
|
@@ -1188,9 +1136,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1188
1136
|
base_project.targets[0].build_configurations.each do |configuration|
|
1189
1137
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = %w[bar foo]
|
1190
1138
|
end
|
1191
|
-
base_project.save
|
1192
1139
|
|
1193
|
-
theirs_project = create_copy_of_project(base_project
|
1140
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1194
1141
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
1195
1142
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "baz"
|
1196
1143
|
end
|
@@ -1206,9 +1153,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1206
1153
|
base_project.targets[0].build_configurations.each do |configuration|
|
1207
1154
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "bar"
|
1208
1155
|
end
|
1209
|
-
base_project.save
|
1210
1156
|
|
1211
|
-
theirs_project = create_copy_of_project(base_project
|
1157
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1212
1158
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
1213
1159
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = %w[baz foo]
|
1214
1160
|
end
|
@@ -1222,19 +1168,18 @@ describe Kintsugi, :apply_change_to_project do
|
|
1222
1168
|
|
1223
1169
|
it "changes to array if added value is string and existing is another string and removal is" \
|
1224
1170
|
"nil for an array build setting" do
|
1225
|
-
before_theirs_project = create_copy_of_project(base_project
|
1171
|
+
before_theirs_project = create_copy_of_project(base_project, "theirs")
|
1226
1172
|
|
1227
1173
|
base_project.targets[0].build_configurations.each do |configuration|
|
1228
1174
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "bar"
|
1229
1175
|
end
|
1230
|
-
base_project.save
|
1231
1176
|
|
1232
|
-
theirs_project = create_copy_of_project(base_project
|
1177
|
+
theirs_project = create_copy_of_project(base_project, "before_theirs")
|
1233
1178
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
1234
1179
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "baz"
|
1235
1180
|
end
|
1236
1181
|
|
1237
|
-
expected_project = create_copy_of_project(base_project
|
1182
|
+
expected_project = create_copy_of_project(base_project, "expected")
|
1238
1183
|
expected_project.targets[0].build_configurations.each do |configuration|
|
1239
1184
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = %w[bar baz]
|
1240
1185
|
end
|
@@ -1248,14 +1193,13 @@ describe Kintsugi, :apply_change_to_project do
|
|
1248
1193
|
|
1249
1194
|
it "raises if added value is string and existing is another string and removal is nil for a " \
|
1250
1195
|
"string build setting" do
|
1251
|
-
before_theirs_project = create_copy_of_project(base_project
|
1196
|
+
before_theirs_project = create_copy_of_project(base_project, "theirs")
|
1252
1197
|
|
1253
1198
|
base_project.targets[0].build_configurations.each do |configuration|
|
1254
1199
|
configuration.build_settings["PRODUCT_NAME"] = "bar"
|
1255
1200
|
end
|
1256
|
-
base_project.save
|
1257
1201
|
|
1258
|
-
theirs_project = create_copy_of_project(base_project
|
1202
|
+
theirs_project = create_copy_of_project(base_project, "before_theirs")
|
1259
1203
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
1260
1204
|
configuration.build_settings["PRODUCT_NAME"] = "baz"
|
1261
1205
|
end
|
@@ -1272,14 +1216,12 @@ describe Kintsugi, :apply_change_to_project do
|
|
1272
1216
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "bar"
|
1273
1217
|
end
|
1274
1218
|
|
1275
|
-
base_project
|
1276
|
-
theirs_project = create_copy_of_project(base_project.path, "theirs")
|
1219
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1277
1220
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
1278
1221
|
configuration.build_settings = nil
|
1279
1222
|
end
|
1280
1223
|
|
1281
|
-
base_project
|
1282
|
-
before_theirs_project = create_copy_of_project(base_project.path, "theirs")
|
1224
|
+
before_theirs_project = create_copy_of_project(base_project, "theirs")
|
1283
1225
|
before_theirs_project.targets[0].build_configurations.each do |configuration|
|
1284
1226
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "baz"
|
1285
1227
|
end
|
@@ -1293,7 +1235,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
1293
1235
|
end
|
1294
1236
|
|
1295
1237
|
it "adds build phases" do
|
1296
|
-
theirs_project = create_copy_of_project(base_project
|
1238
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1297
1239
|
|
1298
1240
|
theirs_project.targets[0].new_shell_script_build_phase("bar")
|
1299
1241
|
theirs_project.targets[0].source_build_phase
|
@@ -1310,7 +1252,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
1310
1252
|
end
|
1311
1253
|
|
1312
1254
|
it "adds build phase with a simple attribute value that has non nil default" do
|
1313
|
-
theirs_project = create_copy_of_project(base_project
|
1255
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1314
1256
|
theirs_project.targets[0].new_shell_script_build_phase("bar")
|
1315
1257
|
theirs_project.targets[0].build_phases.last.shell_script = "Other value"
|
1316
1258
|
|
@@ -1323,9 +1265,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1323
1265
|
|
1324
1266
|
it "removes build phase" do
|
1325
1267
|
base_project.targets[0].new_shell_script_build_phase("bar")
|
1326
|
-
base_project.save
|
1327
1268
|
|
1328
|
-
theirs_project = create_copy_of_project(base_project
|
1269
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1329
1270
|
theirs_project.targets[0].shell_script_build_phases[0].remove_from_project
|
1330
1271
|
|
1331
1272
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -1340,9 +1281,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1340
1281
|
file = variant_group.new_reference("Base")
|
1341
1282
|
file.last_known_file_type = "text.plist.strings"
|
1342
1283
|
target.resources_build_phase.add_file_reference(variant_group)
|
1343
|
-
base_project.save
|
1344
1284
|
|
1345
|
-
theirs_project = create_copy_of_project(base_project
|
1285
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1346
1286
|
theirs_variant_group = theirs_project.main_group.find_subpath("foo.strings")
|
1347
1287
|
theirs_variant_group.new_reference("en")
|
1348
1288
|
|
@@ -1355,9 +1295,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1355
1295
|
|
1356
1296
|
it "adds target dependency" do
|
1357
1297
|
base_project.new_target("com.apple.product-type.library.static", "bar", :ios)
|
1358
|
-
base_project.save
|
1359
1298
|
|
1360
|
-
theirs_project = create_copy_of_project(base_project
|
1299
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1361
1300
|
theirs_project.targets[1].add_dependency(theirs_project.targets[0])
|
1362
1301
|
|
1363
1302
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -1371,9 +1310,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1371
1310
|
base_project.targets[0].build_configurations.each do |configuration|
|
1372
1311
|
configuration.build_settings["GCC_PREFIX_HEADER"] = "foo"
|
1373
1312
|
end
|
1374
|
-
base_project.save
|
1375
1313
|
|
1376
|
-
theirs_project = create_copy_of_project(base_project
|
1314
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1377
1315
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
1378
1316
|
configuration.build_settings["GCC_PREFIX_HEADER"] = "bar"
|
1379
1317
|
end
|
@@ -1386,7 +1324,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
1386
1324
|
end
|
1387
1325
|
|
1388
1326
|
it "adds build settings to new target" do
|
1389
|
-
theirs_project = create_copy_of_project(base_project
|
1327
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1390
1328
|
theirs_project.new_target("com.apple.product-type.library.static", "bar", :ios)
|
1391
1329
|
theirs_project.targets[1].build_configurations.each do |configuration|
|
1392
1330
|
configuration.build_settings["GCC_PREFIX_HEADER"] = "baz"
|
@@ -1399,10 +1337,10 @@ describe Kintsugi, :apply_change_to_project do
|
|
1399
1337
|
expect(base_project).to be_equivalent_to_project(theirs_project)
|
1400
1338
|
end
|
1401
1339
|
|
1402
|
-
it "adds base configuration reference
|
1340
|
+
it "adds base configuration reference" do
|
1403
1341
|
base_project.main_group.new_reference("baz")
|
1404
1342
|
|
1405
|
-
theirs_project = create_copy_of_project(base_project
|
1343
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1406
1344
|
configuration_reference = theirs_project.main_group.find_subpath("baz")
|
1407
1345
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
1408
1346
|
configuration.base_configuration_reference = configuration_reference
|
@@ -1414,10 +1352,31 @@ describe Kintsugi, :apply_change_to_project do
|
|
1414
1352
|
|
1415
1353
|
expect(base_project).to be_equivalent_to_project(theirs_project)
|
1416
1354
|
end
|
1355
|
+
|
1356
|
+
it "adds base configuration reference to new configuration in a new list" do
|
1357
|
+
base_project.main_group.new_reference("baz")
|
1358
|
+
base_project.targets[0].build_configuration_list = nil
|
1359
|
+
|
1360
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1361
|
+
configuration_reference = theirs_project.main_group.find_subpath("baz")
|
1362
|
+
|
1363
|
+
configuration_list = theirs_project.new(Xcodeproj::Project::XCConfigurationList)
|
1364
|
+
theirs_project.targets[0].build_configuration_list = configuration_list
|
1365
|
+
|
1366
|
+
build_configuration = theirs_project.new(Xcodeproj::Project::XCBuildConfiguration)
|
1367
|
+
build_configuration.base_configuration_reference = configuration_reference
|
1368
|
+
configuration_list.build_configurations << build_configuration
|
1369
|
+
|
1370
|
+
changes_to_apply = get_diff(theirs_project, base_project)
|
1371
|
+
|
1372
|
+
described_class.apply_change_to_project(base_project, changes_to_apply, theirs_project)
|
1373
|
+
|
1374
|
+
expect(base_project).to be_equivalent_to_project(theirs_project)
|
1375
|
+
end
|
1417
1376
|
end
|
1418
1377
|
|
1419
1378
|
it "adds known regions" do
|
1420
|
-
theirs_project = create_copy_of_project(base_project
|
1379
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1421
1380
|
theirs_project.root_object.known_regions += ["fr"]
|
1422
1381
|
|
1423
1382
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -1428,7 +1387,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
1428
1387
|
end
|
1429
1388
|
|
1430
1389
|
it "removes known regions" do
|
1431
|
-
theirs_project = create_copy_of_project(base_project
|
1390
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1432
1391
|
theirs_project.root_object.known_regions = nil
|
1433
1392
|
|
1434
1393
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -1439,7 +1398,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
1439
1398
|
end
|
1440
1399
|
|
1441
1400
|
it "adds attribute target changes even if target attributes don't exist" do
|
1442
|
-
theirs_project = create_copy_of_project(base_project
|
1401
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1443
1402
|
|
1444
1403
|
theirs_project.root_object.attributes["TargetAttributes"] =
|
1445
1404
|
{"foo" => {"LastSwiftMigration" => "1140"}}
|
@@ -1453,9 +1412,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1453
1412
|
|
1454
1413
|
it "adds attribute target changes of new target" do
|
1455
1414
|
base_project.root_object.attributes["TargetAttributes"] = {}
|
1456
|
-
base_project.save
|
1457
1415
|
|
1458
|
-
theirs_project = create_copy_of_project(base_project
|
1416
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1459
1417
|
theirs_project.root_object.attributes["TargetAttributes"] =
|
1460
1418
|
{"foo" => {"LastSwiftMigration" => "1140"}}
|
1461
1419
|
|
@@ -1468,9 +1426,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1468
1426
|
|
1469
1427
|
it "adds attribute target changes of existing target" do
|
1470
1428
|
base_project.root_object.attributes["TargetAttributes"] = {"foo" => {}}
|
1471
|
-
base_project.save
|
1472
1429
|
|
1473
|
-
theirs_project = create_copy_of_project(base_project
|
1430
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1474
1431
|
theirs_project.root_object.attributes["TargetAttributes"] =
|
1475
1432
|
{"foo" => {"LastSwiftMigration" => "1140"}}
|
1476
1433
|
|
@@ -1484,9 +1441,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1484
1441
|
it "removes attribute target changes" do
|
1485
1442
|
base_project.root_object.attributes["TargetAttributes"] =
|
1486
1443
|
{"foo" => {"LastSwiftMigration" => "1140"}}
|
1487
|
-
base_project.save
|
1488
1444
|
|
1489
|
-
theirs_project = create_copy_of_project(base_project
|
1445
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1490
1446
|
theirs_project.root_object.attributes["TargetAttributes"]["foo"] = {}
|
1491
1447
|
|
1492
1448
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -1499,12 +1455,11 @@ describe Kintsugi, :apply_change_to_project do
|
|
1499
1455
|
it "removes attribute target changes from a project it was removed from already" do
|
1500
1456
|
base_project.root_object.attributes["TargetAttributes"] =
|
1501
1457
|
{"foo" => {"LastSwiftMigration" => "1140"}}
|
1502
|
-
base_project.save
|
1503
1458
|
|
1504
|
-
theirs_project = create_copy_of_project(base_project
|
1459
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1505
1460
|
theirs_project.root_object.attributes["TargetAttributes"]["foo"] = {}
|
1506
1461
|
|
1507
|
-
ours_project = create_copy_of_project(base_project
|
1462
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1508
1463
|
ours_project.root_object.attributes["TargetAttributes"]["foo"] = {}
|
1509
1464
|
|
1510
1465
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -1516,12 +1471,11 @@ describe Kintsugi, :apply_change_to_project do
|
|
1516
1471
|
|
1517
1472
|
it "doesn't throw if existing attribute target change is same as added change" do
|
1518
1473
|
base_project.root_object.attributes["TargetAttributes"] = {"foo" => "1140"}
|
1519
|
-
base_project.save
|
1520
1474
|
|
1521
|
-
theirs_project = create_copy_of_project(base_project
|
1475
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1522
1476
|
theirs_project.root_object.attributes["TargetAttributes"]["foo"] = "1111"
|
1523
1477
|
|
1524
|
-
ours_project = create_copy_of_project(base_project
|
1478
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1525
1479
|
ours_project.root_object.attributes["TargetAttributes"]["foo"] = "1111"
|
1526
1480
|
|
1527
1481
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -1537,13 +1491,11 @@ describe Kintsugi, :apply_change_to_project do
|
|
1537
1491
|
subproject = new_subproject("subproj", framework_filename)
|
1538
1492
|
|
1539
1493
|
add_existing_subproject_to_project(base_project, subproject, framework_filename)
|
1540
|
-
base_project.save
|
1541
1494
|
|
1542
1495
|
theirs_project_path = make_temp_directory("theirs", ".xcodeproj")
|
1543
1496
|
theirs_project = Xcodeproj::Project.new(theirs_project_path)
|
1544
1497
|
add_existing_subproject_to_project(theirs_project, subproject, framework_filename)
|
1545
|
-
theirs_project
|
1546
|
-
ours_project = create_copy_of_project(theirs_project_path, "other_theirs")
|
1498
|
+
ours_project = create_copy_of_project(theirs_project, "other_theirs")
|
1547
1499
|
|
1548
1500
|
subproject.new_target("com.apple.product-type.library.static", "bari", :ios)
|
1549
1501
|
ours_project.root_object.project_references[0][:product_group] <<
|
@@ -1563,8 +1515,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
1563
1515
|
base_project = Xcodeproj::Project.new(base_project_path)
|
1564
1516
|
base_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
1565
1517
|
|
1566
|
-
base_project
|
1567
|
-
theirs_project = create_copy_of_project(base_project.path, "theirs")
|
1518
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1568
1519
|
|
1569
1520
|
variant_group = theirs_project.main_group.new_variant_group("foo.strings")
|
1570
1521
|
variant_group.new_reference("Base").last_known_file_type = "text.plist.strings"
|
@@ -1579,9 +1530,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1579
1530
|
|
1580
1531
|
it "adds build configuration list" do
|
1581
1532
|
base_project.root_object.build_configuration_list = nil
|
1582
|
-
base_project.save
|
1583
1533
|
|
1584
|
-
theirs_project = create_copy_of_project(base_project
|
1534
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1585
1535
|
theirs_project.root_object.build_configuration_list =
|
1586
1536
|
theirs_project.new(Xcodeproj::Project::XCConfigurationList)
|
1587
1537
|
|
@@ -1592,7 +1542,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
1592
1542
|
end
|
1593
1543
|
|
1594
1544
|
it "removes build configuration list" do
|
1595
|
-
theirs_project = create_copy_of_project(base_project
|
1545
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1596
1546
|
theirs_project.build_configuration_list.remove_from_project
|
1597
1547
|
|
1598
1548
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -1606,8 +1556,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
1606
1556
|
base_project = Xcodeproj::Project.new(base_project_path)
|
1607
1557
|
base_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
1608
1558
|
|
1609
|
-
base_project
|
1610
|
-
theirs_project = create_copy_of_project(base_project.path, "theirs")
|
1559
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1611
1560
|
|
1612
1561
|
theirs_project.root_object.product_ref_group.new_group("foo")
|
1613
1562
|
|
@@ -1623,8 +1572,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
1623
1572
|
base_project = Xcodeproj::Project.new(base_project_path)
|
1624
1573
|
base_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
1625
1574
|
|
1626
|
-
base_project
|
1627
|
-
theirs_project = create_copy_of_project(base_project.path, "theirs")
|
1575
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1628
1576
|
|
1629
1577
|
variant_group = theirs_project.root_object.product_ref_group.new_variant_group("foo.strings")
|
1630
1578
|
variant_group.new_reference("Base").last_known_file_type = "text.plist.strings"
|
@@ -1639,13 +1587,12 @@ describe Kintsugi, :apply_change_to_project do
|
|
1639
1587
|
describe "avoiding duplicate references to the same component" do
|
1640
1588
|
it "avoids adding file reference that already exists" do
|
1641
1589
|
base_project.main_group.new_reference("bar")
|
1642
|
-
base_project.save
|
1643
1590
|
|
1644
|
-
theirs_project = create_copy_of_project(base_project
|
1591
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1645
1592
|
theirs_project.main_group.new_reference("bar")
|
1646
1593
|
|
1647
1594
|
changes_to_apply = get_diff(theirs_project, base_project)
|
1648
|
-
other_project = create_copy_of_project(base_project
|
1595
|
+
other_project = create_copy_of_project(base_project, "theirs")
|
1649
1596
|
described_class.apply_change_to_project(other_project, changes_to_apply, theirs_project)
|
1650
1597
|
|
1651
1598
|
expect(other_project).to be_equivalent_to_project(base_project)
|
@@ -1653,13 +1600,12 @@ describe Kintsugi, :apply_change_to_project do
|
|
1653
1600
|
|
1654
1601
|
it "avoids adding group that already exists" do
|
1655
1602
|
base_project.main_group.new_group("bar")
|
1656
|
-
base_project.save
|
1657
1603
|
|
1658
|
-
theirs_project = create_copy_of_project(base_project
|
1604
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1659
1605
|
theirs_project.main_group.new_group("bar")
|
1660
1606
|
|
1661
1607
|
changes_to_apply = get_diff(theirs_project, base_project)
|
1662
|
-
other_project = create_copy_of_project(base_project
|
1608
|
+
other_project = create_copy_of_project(base_project, "theirs")
|
1663
1609
|
described_class.apply_change_to_project(other_project, changes_to_apply, theirs_project)
|
1664
1610
|
|
1665
1611
|
expect(other_project).to be_equivalent_to_project(base_project)
|
@@ -1667,24 +1613,23 @@ describe Kintsugi, :apply_change_to_project do
|
|
1667
1613
|
|
1668
1614
|
it "avoids adding variant group that already exists" do
|
1669
1615
|
base_project.main_group.new_variant_group("bar")
|
1670
|
-
base_project.save
|
1671
1616
|
|
1672
|
-
theirs_project = create_copy_of_project(base_project
|
1617
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1673
1618
|
theirs_project.main_group.new_variant_group("bar")
|
1674
1619
|
|
1675
1620
|
changes_to_apply = get_diff(theirs_project, base_project)
|
1676
|
-
other_project = create_copy_of_project(base_project
|
1621
|
+
other_project = create_copy_of_project(base_project, "theirs")
|
1677
1622
|
described_class.apply_change_to_project(other_project, changes_to_apply, theirs_project)
|
1678
1623
|
|
1679
1624
|
expect(other_project).to be_equivalent_to_project(base_project)
|
1680
1625
|
end
|
1681
1626
|
|
1682
1627
|
it "avoids adding subproject that already exists" do
|
1683
|
-
theirs_project = create_copy_of_project(base_project
|
1628
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1684
1629
|
|
1685
1630
|
subproject = add_new_subproject_to_project(theirs_project, "foo", "foo")
|
1686
1631
|
|
1687
|
-
ours_project = create_copy_of_project(base_project
|
1632
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1688
1633
|
add_existing_subproject_to_project(ours_project, subproject, "foo")
|
1689
1634
|
|
1690
1635
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -1698,14 +1643,13 @@ describe Kintsugi, :apply_change_to_project do
|
|
1698
1643
|
file_reference = base_project.main_group.new_reference("bar")
|
1699
1644
|
target = base_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
1700
1645
|
target.frameworks_build_phase.add_file_reference(file_reference)
|
1701
|
-
base_project.save
|
1702
1646
|
|
1703
|
-
theirs_project = create_copy_of_project(base_project
|
1647
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1704
1648
|
file_reference = theirs_project.main_group.new_reference("bar")
|
1705
1649
|
theirs_project.targets[0].frameworks_build_phase.add_file_reference(file_reference)
|
1706
1650
|
|
1707
1651
|
changes_to_apply = get_diff(theirs_project, base_project)
|
1708
|
-
other_project = create_copy_of_project(base_project
|
1652
|
+
other_project = create_copy_of_project(base_project, "theirs")
|
1709
1653
|
described_class.apply_change_to_project(other_project, changes_to_apply, theirs_project)
|
1710
1654
|
|
1711
1655
|
expect(other_project).to be_equivalent_to_project(base_project)
|
@@ -1714,9 +1658,8 @@ describe Kintsugi, :apply_change_to_project do
|
|
1714
1658
|
it "avoids adding reference proxy that already exists" do
|
1715
1659
|
framework_filename = "baz"
|
1716
1660
|
subproject = add_new_subproject_to_project(base_project, "subproj", framework_filename)
|
1717
|
-
base_project.save
|
1718
1661
|
|
1719
|
-
theirs_project = create_copy_of_project(base_project
|
1662
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1720
1663
|
|
1721
1664
|
theirs_project.root_object.project_references[0][:product_group] <<
|
1722
1665
|
create_reference_proxy_from_product_reference(theirs_project,
|
@@ -1726,7 +1669,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
1726
1669
|
|
1727
1670
|
changes_to_apply = get_diff(theirs_project, base_project)
|
1728
1671
|
|
1729
|
-
other_project = create_copy_of_project(base_project
|
1672
|
+
other_project = create_copy_of_project(base_project, "theirs")
|
1730
1673
|
described_class.apply_change_to_project(other_project, changes_to_apply, theirs_project)
|
1731
1674
|
|
1732
1675
|
expect(other_project).to be_equivalent_to_project(base_project)
|
@@ -1734,21 +1677,19 @@ describe Kintsugi, :apply_change_to_project do
|
|
1734
1677
|
|
1735
1678
|
it "keeps array if adding string value that already exists in array" do
|
1736
1679
|
base_project.new_target("com.apple.product-type.library.static", "bar", :ios)
|
1737
|
-
base_project.save
|
1738
1680
|
|
1739
|
-
theirs_project = create_copy_of_project(base_project
|
1681
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1740
1682
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
1741
1683
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = "bar"
|
1742
1684
|
end
|
1743
1685
|
changes_to_apply = get_diff(theirs_project, base_project)
|
1744
1686
|
|
1745
|
-
ours_project = create_copy_of_project(base_project
|
1687
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1746
1688
|
ours_project.targets[0].build_configurations.each do |configuration|
|
1747
1689
|
configuration.build_settings["HEADER_SEARCH_PATHS"] = %w[bar foo]
|
1748
1690
|
end
|
1749
|
-
ours_project.save
|
1750
1691
|
|
1751
|
-
expected_project = create_copy_of_project(ours_project
|
1692
|
+
expected_project = create_copy_of_project(ours_project, "expected")
|
1752
1693
|
|
1753
1694
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
1754
1695
|
|
@@ -1766,11 +1707,11 @@ describe Kintsugi, :apply_change_to_project do
|
|
1766
1707
|
end
|
1767
1708
|
|
1768
1709
|
it "adds subproject that already exists" do
|
1769
|
-
theirs_project = create_copy_of_project(base_project
|
1710
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1770
1711
|
|
1771
1712
|
subproject = add_new_subproject_to_project(theirs_project, "foo", "foo")
|
1772
1713
|
|
1773
|
-
ours_project = create_copy_of_project(base_project
|
1714
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1774
1715
|
add_existing_subproject_to_project(ours_project, subproject, "foo")
|
1775
1716
|
|
1776
1717
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -1802,14 +1743,13 @@ describe Kintsugi, :apply_change_to_project do
|
|
1802
1743
|
test_prompt.choose_option(0)
|
1803
1744
|
|
1804
1745
|
base_project.main_group.find_subpath("new_group", true)
|
1805
|
-
base_project.save
|
1806
1746
|
|
1807
|
-
theirs_project = create_copy_of_project(base_project
|
1747
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1808
1748
|
theirs_project["new_group"].find_subpath("sub_group", true)
|
1809
1749
|
|
1810
1750
|
changes_to_apply = get_diff(theirs_project, base_project)
|
1811
1751
|
|
1812
|
-
ours_project = create_copy_of_project(base_project
|
1752
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1813
1753
|
ours_project.main_group.find_subpath("new_group").remove_from_project
|
1814
1754
|
|
1815
1755
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
@@ -1820,17 +1760,15 @@ describe Kintsugi, :apply_change_to_project do
|
|
1820
1760
|
test_prompt.choose_option(1)
|
1821
1761
|
|
1822
1762
|
base_project.main_group.find_subpath("new_group", true)
|
1823
|
-
base_project.save
|
1824
1763
|
|
1825
|
-
theirs_project = create_copy_of_project(base_project
|
1764
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1826
1765
|
theirs_project["new_group"].find_subpath("sub_group", true)
|
1827
1766
|
|
1828
1767
|
changes_to_apply = get_diff(theirs_project, base_project)
|
1829
1768
|
|
1830
|
-
ours_project = create_copy_of_project(base_project
|
1769
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1831
1770
|
ours_project.main_group.find_subpath("new_group").remove_from_project
|
1832
|
-
ours_project
|
1833
|
-
expected_project = create_copy_of_project(ours_project.path, "expected")
|
1771
|
+
expected_project = create_copy_of_project(ours_project, "expected")
|
1834
1772
|
|
1835
1773
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
1836
1774
|
expect(ours_project).to be_equivalent_to_project(expected_project)
|
@@ -1842,14 +1780,13 @@ describe Kintsugi, :apply_change_to_project do
|
|
1842
1780
|
test_prompt.choose_option(0)
|
1843
1781
|
|
1844
1782
|
base_project.main_group.find_subpath("new_group", true)
|
1845
|
-
base_project.save
|
1846
1783
|
|
1847
|
-
theirs_project = create_copy_of_project(base_project
|
1784
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1848
1785
|
theirs_project["new_group"].new_reference("foo/bar")
|
1849
1786
|
|
1850
1787
|
changes_to_apply = get_diff(theirs_project, base_project)
|
1851
1788
|
|
1852
|
-
ours_project = create_copy_of_project(base_project
|
1789
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1853
1790
|
ours_project.main_group.find_subpath("new_group").remove_from_project
|
1854
1791
|
|
1855
1792
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
@@ -1860,17 +1797,15 @@ describe Kintsugi, :apply_change_to_project do
|
|
1860
1797
|
test_prompt.choose_option(1)
|
1861
1798
|
|
1862
1799
|
base_project.main_group.find_subpath("new_group", true)
|
1863
|
-
base_project.save
|
1864
1800
|
|
1865
|
-
theirs_project = create_copy_of_project(base_project
|
1801
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1866
1802
|
theirs_project["new_group"].new_reference("foo/bar")
|
1867
1803
|
|
1868
1804
|
changes_to_apply = get_diff(theirs_project, base_project)
|
1869
1805
|
|
1870
|
-
ours_project = create_copy_of_project(base_project
|
1806
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1871
1807
|
ours_project.main_group.find_subpath("new_group").remove_from_project
|
1872
|
-
ours_project
|
1873
|
-
expected_project = create_copy_of_project(ours_project.path, "expected")
|
1808
|
+
expected_project = create_copy_of_project(ours_project, "expected")
|
1874
1809
|
|
1875
1810
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
1876
1811
|
expect(ours_project).to be_equivalent_to_project(expected_project)
|
@@ -1882,12 +1817,11 @@ describe Kintsugi, :apply_change_to_project do
|
|
1882
1817
|
test_prompt.choose_option(0)
|
1883
1818
|
|
1884
1819
|
base_project.main_group.find_subpath("some_group", true)
|
1885
|
-
base_project.save
|
1886
1820
|
|
1887
|
-
ours_project = create_copy_of_project(base_project
|
1821
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1888
1822
|
ours_project.main_group.find_subpath("some_group").remove_from_project
|
1889
1823
|
|
1890
|
-
theirs_project = create_copy_of_project(base_project
|
1824
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1891
1825
|
theirs_project.main_group.find_subpath("some_group").source_tree = "SDKROOT"
|
1892
1826
|
|
1893
1827
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -1901,18 +1835,16 @@ describe Kintsugi, :apply_change_to_project do
|
|
1901
1835
|
test_prompt.choose_option(1)
|
1902
1836
|
|
1903
1837
|
base_project.main_group.find_subpath("some_group", true)
|
1904
|
-
base_project.save
|
1905
1838
|
|
1906
|
-
ours_project = create_copy_of_project(base_project
|
1839
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1907
1840
|
ours_project.main_group.find_subpath("some_group").remove_from_project
|
1908
1841
|
|
1909
|
-
theirs_project = create_copy_of_project(base_project
|
1842
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1910
1843
|
theirs_project.main_group.find_subpath("some_group").source_tree = "SDKROOT"
|
1911
1844
|
|
1912
1845
|
changes_to_apply = get_diff(theirs_project, base_project)
|
1913
1846
|
|
1914
|
-
ours_project
|
1915
|
-
expected_project = create_copy_of_project(ours_project.path, "expected")
|
1847
|
+
expected_project = create_copy_of_project(ours_project, "expected")
|
1916
1848
|
|
1917
1849
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
1918
1850
|
|
@@ -1925,12 +1857,11 @@ describe Kintsugi, :apply_change_to_project do
|
|
1925
1857
|
test_prompt.choose_option(0)
|
1926
1858
|
|
1927
1859
|
base_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
1928
|
-
base_project.save
|
1929
1860
|
|
1930
|
-
ours_project = create_copy_of_project(base_project
|
1861
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1931
1862
|
ours_project.targets[0].product_reference.remove_from_project
|
1932
1863
|
|
1933
|
-
theirs_project = create_copy_of_project(base_project
|
1864
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1934
1865
|
theirs_project.targets[0].product_reference.source_tree = "SDKROOT"
|
1935
1866
|
|
1936
1867
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -1944,18 +1875,16 @@ describe Kintsugi, :apply_change_to_project do
|
|
1944
1875
|
test_prompt.choose_option(1)
|
1945
1876
|
|
1946
1877
|
base_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
1947
|
-
base_project.save
|
1948
1878
|
|
1949
|
-
ours_project = create_copy_of_project(base_project
|
1879
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1950
1880
|
ours_project.targets[0].product_reference.remove_from_project
|
1951
1881
|
|
1952
|
-
theirs_project = create_copy_of_project(base_project
|
1882
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1953
1883
|
theirs_project.targets[0].product_reference.source_tree = "SDKROOT"
|
1954
1884
|
|
1955
1885
|
changes_to_apply = get_diff(theirs_project, base_project)
|
1956
1886
|
|
1957
|
-
ours_project
|
1958
|
-
expected_project = create_copy_of_project(ours_project.path, "expected")
|
1887
|
+
expected_project = create_copy_of_project(ours_project, "expected")
|
1959
1888
|
|
1960
1889
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
1961
1890
|
|
@@ -1972,16 +1901,15 @@ describe Kintsugi, :apply_change_to_project do
|
|
1972
1901
|
file_reference = base_project.main_group.new_reference(file_reference_name)
|
1973
1902
|
target = base_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
1974
1903
|
target.source_build_phase.add_file_reference(file_reference)
|
1975
|
-
base_project.save
|
1976
1904
|
|
1977
|
-
ours_project = create_copy_of_project(base_project
|
1905
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
1978
1906
|
build_file = ours_project.targets[0].source_build_phase.files[-1]
|
1979
1907
|
# Removing the build file first is done because prior to xcodeproj 1.22, the build file was
|
1980
1908
|
# not removed when its file reference was removed.
|
1981
1909
|
build_file.remove_from_project
|
1982
1910
|
ours_project.main_group.find_subpath(file_reference_name).remove_from_project
|
1983
1911
|
|
1984
|
-
theirs_project = create_copy_of_project(base_project
|
1912
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
1985
1913
|
theirs_project.main_group.find_subpath(file_reference_name).source_tree = "SDKROOT"
|
1986
1914
|
|
1987
1915
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -1999,18 +1927,16 @@ describe Kintsugi, :apply_change_to_project do
|
|
1999
1927
|
file_reference = base_project.main_group.new_reference(file_reference_name)
|
2000
1928
|
target = base_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
2001
1929
|
target.source_build_phase.add_file_reference(file_reference)
|
2002
|
-
base_project.save
|
2003
1930
|
|
2004
|
-
ours_project = create_copy_of_project(base_project
|
1931
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
2005
1932
|
ours_project.main_group.find_subpath(file_reference_name).remove_from_project
|
2006
1933
|
|
2007
|
-
theirs_project = create_copy_of_project(base_project
|
1934
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
2008
1935
|
theirs_project.main_group.find_subpath(file_reference_name).source_tree = "SDKROOT"
|
2009
1936
|
|
2010
1937
|
changes_to_apply = get_diff(theirs_project, base_project)
|
2011
1938
|
|
2012
|
-
ours_project
|
2013
|
-
expected_project = create_copy_of_project(ours_project.path, "expected")
|
1939
|
+
expected_project = create_copy_of_project(ours_project, "expected")
|
2014
1940
|
|
2015
1941
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
2016
1942
|
|
@@ -2027,14 +1953,13 @@ describe Kintsugi, :apply_change_to_project do
|
|
2027
1953
|
base_project.targets[0].build_configurations.each do |configuration|
|
2028
1954
|
configuration.build_settings = nil
|
2029
1955
|
end
|
2030
|
-
base_project.save
|
2031
1956
|
|
2032
|
-
theirs_project = create_copy_of_project(base_project
|
1957
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
2033
1958
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
2034
1959
|
configuration.build_settings = {"HEADER_SEARCH_PATHS" => "bar"}
|
2035
1960
|
end
|
2036
1961
|
|
2037
|
-
ours_project = create_copy_of_project(base_project
|
1962
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
2038
1963
|
ours_project.targets[0].build_configurations.each do |configuration|
|
2039
1964
|
configuration.build_settings = {"HEADER_SEARCH_PATHS" => "baz"}
|
2040
1965
|
end
|
@@ -2053,19 +1978,17 @@ describe Kintsugi, :apply_change_to_project do
|
|
2053
1978
|
base_project.targets[0].build_configurations.each do |configuration|
|
2054
1979
|
configuration.build_settings = nil
|
2055
1980
|
end
|
2056
|
-
base_project.save
|
2057
1981
|
|
2058
|
-
theirs_project = create_copy_of_project(base_project
|
1982
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
2059
1983
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
2060
1984
|
configuration.build_settings = {"HEADER_SEARCH_PATHS" => "bar"}
|
2061
1985
|
end
|
2062
1986
|
|
2063
|
-
ours_project = create_copy_of_project(base_project
|
1987
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
2064
1988
|
ours_project.targets[0].build_configurations.each do |configuration|
|
2065
1989
|
configuration.build_settings = {"HEADER_SEARCH_PATHS" => "baz"}
|
2066
1990
|
end
|
2067
|
-
ours_project
|
2068
|
-
expected_project = create_copy_of_project(ours_project.path, "expected")
|
1991
|
+
expected_project = create_copy_of_project(ours_project, "expected")
|
2069
1992
|
|
2070
1993
|
changes_to_apply = get_diff(theirs_project, base_project)
|
2071
1994
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
@@ -2083,14 +2006,13 @@ describe Kintsugi, :apply_change_to_project do
|
|
2083
2006
|
base_project.targets[0].build_configurations.each do |configuration|
|
2084
2007
|
configuration.build_settings = {"HEADER_SEARCH_PATHS" => "bar"}
|
2085
2008
|
end
|
2086
|
-
base_project.save
|
2087
2009
|
|
2088
|
-
theirs_project = create_copy_of_project(base_project
|
2010
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
2089
2011
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
2090
2012
|
configuration.build_settings = nil
|
2091
2013
|
end
|
2092
2014
|
|
2093
|
-
ours_project = create_copy_of_project(base_project
|
2015
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
2094
2016
|
ours_project.targets[0].build_configurations.each do |configuration|
|
2095
2017
|
configuration.build_settings = {"HEADER_SEARCH_PATHS" => "baz"}
|
2096
2018
|
end
|
@@ -2098,7 +2020,7 @@ describe Kintsugi, :apply_change_to_project do
|
|
2098
2020
|
changes_to_apply = get_diff(theirs_project, base_project)
|
2099
2021
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
2100
2022
|
|
2101
|
-
expected_project = create_copy_of_project(base_project
|
2023
|
+
expected_project = create_copy_of_project(base_project, "expected")
|
2102
2024
|
expected_project.targets[0].build_configurations.each do |configuration|
|
2103
2025
|
configuration.build_settings = {}
|
2104
2026
|
end
|
@@ -2113,19 +2035,17 @@ describe Kintsugi, :apply_change_to_project do
|
|
2113
2035
|
base_project.targets[0].build_configurations.each do |configuration|
|
2114
2036
|
configuration.build_settings = {"HEADER_SEARCH_PATHS" => "bar"}
|
2115
2037
|
end
|
2116
|
-
base_project.save
|
2117
2038
|
|
2118
|
-
theirs_project = create_copy_of_project(base_project
|
2039
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
2119
2040
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
2120
2041
|
configuration.build_settings = nil
|
2121
2042
|
end
|
2122
2043
|
|
2123
|
-
ours_project = create_copy_of_project(base_project
|
2044
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
2124
2045
|
ours_project.targets[0].build_configurations.each do |configuration|
|
2125
2046
|
configuration.build_settings = {"HEADER_SEARCH_PATHS" => "baz"}
|
2126
2047
|
end
|
2127
|
-
ours_project
|
2128
|
-
expected_project = create_copy_of_project(ours_project.path, "expected")
|
2048
|
+
expected_project = create_copy_of_project(ours_project, "expected")
|
2129
2049
|
|
2130
2050
|
changes_to_apply = get_diff(theirs_project, base_project)
|
2131
2051
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
@@ -2143,14 +2063,13 @@ describe Kintsugi, :apply_change_to_project do
|
|
2143
2063
|
base_project.targets[0].build_configurations.each do |configuration|
|
2144
2064
|
configuration.build_settings["PRODUCT_NAME"] = "old"
|
2145
2065
|
end
|
2146
|
-
base_project.save
|
2147
2066
|
|
2148
|
-
theirs_project = create_copy_of_project(base_project
|
2067
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
2149
2068
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
2150
2069
|
configuration.build_settings["PRODUCT_NAME"] = "new"
|
2151
2070
|
end
|
2152
2071
|
|
2153
|
-
ours_project = create_copy_of_project(base_project
|
2072
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
2154
2073
|
ours_project.targets[0].build_configurations.each do |configuration|
|
2155
2074
|
configuration.build_settings["PRODUCT_NAME"] = "existing"
|
2156
2075
|
end
|
@@ -2169,19 +2088,17 @@ describe Kintsugi, :apply_change_to_project do
|
|
2169
2088
|
base_project.targets[0].build_configurations.each do |configuration|
|
2170
2089
|
configuration.build_settings["PRODUCT_NAME"] = "old"
|
2171
2090
|
end
|
2172
|
-
base_project.save
|
2173
2091
|
|
2174
|
-
theirs_project = create_copy_of_project(base_project
|
2092
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
2175
2093
|
theirs_project.targets[0].build_configurations.each do |configuration|
|
2176
2094
|
configuration.build_settings["PRODUCT_NAME"] = "new"
|
2177
2095
|
end
|
2178
2096
|
|
2179
|
-
ours_project = create_copy_of_project(base_project
|
2097
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
2180
2098
|
ours_project.targets[0].build_configurations.each do |configuration|
|
2181
2099
|
configuration.build_settings["PRODUCT_NAME"] = "existing"
|
2182
2100
|
end
|
2183
|
-
ours_project
|
2184
|
-
expected_project = create_copy_of_project(ours_project.path, "expected")
|
2101
|
+
expected_project = create_copy_of_project(ours_project, "expected")
|
2185
2102
|
|
2186
2103
|
changes_to_apply = get_diff(theirs_project, base_project)
|
2187
2104
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
@@ -2196,12 +2113,11 @@ describe Kintsugi, :apply_change_to_project do
|
|
2196
2113
|
|
2197
2114
|
base_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
2198
2115
|
base_project.targets[0].new_shell_script_build_phase("bar")
|
2199
|
-
base_project.save
|
2200
2116
|
|
2201
|
-
theirs_project = create_copy_of_project(base_project
|
2117
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
2202
2118
|
theirs_project.targets[0].shell_script_build_phases[0].remove_from_project
|
2203
2119
|
|
2204
|
-
ours_project = create_copy_of_project(base_project
|
2120
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
2205
2121
|
ours_project.targets[0].shell_script_build_phases[0].shell_script = "foo"
|
2206
2122
|
|
2207
2123
|
changes_to_apply = get_diff(theirs_project, base_project)
|
@@ -2215,16 +2131,14 @@ describe Kintsugi, :apply_change_to_project do
|
|
2215
2131
|
|
2216
2132
|
base_project.new_target("com.apple.product-type.library.static", "foo", :ios)
|
2217
2133
|
base_project.targets[0].new_shell_script_build_phase("bar")
|
2218
|
-
base_project.save
|
2219
2134
|
|
2220
|
-
theirs_project = create_copy_of_project(base_project
|
2135
|
+
theirs_project = create_copy_of_project(base_project, "theirs")
|
2221
2136
|
theirs_project.targets[0].shell_script_build_phases[0].remove_from_project
|
2222
2137
|
|
2223
|
-
ours_project = create_copy_of_project(base_project
|
2138
|
+
ours_project = create_copy_of_project(base_project, "ours")
|
2224
2139
|
ours_project.targets[0].shell_script_build_phases[0].shell_script = "foo"
|
2225
2140
|
|
2226
|
-
ours_project
|
2227
|
-
expected_project = create_copy_of_project(ours_project.path, "expected")
|
2141
|
+
expected_project = create_copy_of_project(ours_project, "expected")
|
2228
2142
|
|
2229
2143
|
changes_to_apply = get_diff(theirs_project, base_project)
|
2230
2144
|
described_class.apply_change_to_project(ours_project, changes_to_apply, theirs_project)
|
@@ -2234,9 +2148,9 @@ describe Kintsugi, :apply_change_to_project do
|
|
2234
2148
|
end
|
2235
2149
|
end
|
2236
2150
|
|
2237
|
-
def create_copy_of_project(
|
2151
|
+
def create_copy_of_project(project, new_project_prefix)
|
2238
2152
|
copied_project_path = make_temp_directory(new_project_prefix, ".xcodeproj")
|
2239
|
-
|
2153
|
+
project.save(copied_project_path)
|
2240
2154
|
Xcodeproj::Project.open(copied_project_path)
|
2241
2155
|
end
|
2242
2156
|
|