mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-28 02:42:36 +02:00
add Diff3 library
This commit is contained in:
@@ -31,6 +31,7 @@
|
||||
<script src='../js/lib/d3.value.js'></script>
|
||||
<script src='../js/lib/d3-compat.js'></script>
|
||||
<script src='../js/lib/bootstrap-tooltip.js'></script>
|
||||
<script src='../js/lib/diff3.js'></script>
|
||||
<script src='../js/lib/rbush.js'></script>
|
||||
<script src='../js/lib/togeojson.js'></script>
|
||||
<script src='../js/lib/osmauth.js'></script>
|
||||
@@ -214,6 +215,7 @@
|
||||
<!-- include spec files here... -->
|
||||
<script src="spec/lib/d3.combobox.js"></script>
|
||||
<script src="spec/lib/d3.keybinding.js"></script>
|
||||
<script src="spec/lib/diff3.js"></script>
|
||||
<script src="spec/lib/locale.js"></script>
|
||||
|
||||
<script src="spec/actions/add_member.js"></script>
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
|
||||
<!-- include spec files here... -->
|
||||
<script src="spec/lib/d3.keybinding.js"></script>
|
||||
<script src="spec/lib/diff3.js"></script>
|
||||
<script src="spec/lib/locale.js"></script>
|
||||
|
||||
<script src="spec/actions/add_entity.js"></script>
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
describe("diff3", function() {
|
||||
function split(s) {
|
||||
return s ? s.split(/ /) : [];
|
||||
}
|
||||
|
||||
it('performs diff3 merge', function() {
|
||||
var o = split('AA ZZ 00 M 99'),
|
||||
a = split('AA a b c ZZ new 00 a a M 99'),
|
||||
b = split('AA a d c ZZ 11 M z z 99'),
|
||||
res = Diff3.diff3_merge(a, o, b);
|
||||
|
||||
/*
|
||||
AA
|
||||
<<<<<<< a
|
||||
a
|
||||
b
|
||||
c
|
||||
||||||| o
|
||||
=======
|
||||
a
|
||||
d
|
||||
c
|
||||
>>>>>>> b
|
||||
ZZ
|
||||
<<<<<<< a
|
||||
new
|
||||
00
|
||||
a
|
||||
a
|
||||
||||||| o
|
||||
00
|
||||
=======
|
||||
11
|
||||
>>>>>>> b
|
||||
M
|
||||
z
|
||||
z
|
||||
99
|
||||
*/
|
||||
|
||||
expect(res[0].ok).to.eql(['AA']);
|
||||
expect(res[0].conflict).to.be.undefined;
|
||||
|
||||
expect(res[1].ok).to.be.undefined;
|
||||
expect(res[1].conflict.o).to.eql([]);
|
||||
expect(res[1].conflict.a).to.eql(['a', 'b', 'c']);
|
||||
expect(res[1].conflict.b).to.eql(['a', 'd', 'c']);
|
||||
|
||||
expect(res[2].ok).to.eql(['ZZ']);
|
||||
expect(res[2].conflict).to.be.undefined;
|
||||
|
||||
expect(res[3].ok).to.be.undefined;
|
||||
expect(res[3].conflict.o).to.eql(['00']);
|
||||
expect(res[3].conflict.a).to.eql(['new', '00', 'a', 'a']);
|
||||
expect(res[3].conflict.b).to.eql(['11']);
|
||||
|
||||
expect(res[4].ok).to.eql(['M', 'z', 'z', '99']);
|
||||
expect(res[4].conflict).to.be.undefined;
|
||||
});
|
||||
|
||||
it('can include false conflicts', function() {
|
||||
var o = split('AA ZZ'),
|
||||
a = split('AA a b c ZZ'),
|
||||
b = split('AA a b c ZZ'),
|
||||
res = Diff3.diff3_merge(a, o, b, false);
|
||||
|
||||
expect(res[0].ok).to.eql(['AA']);
|
||||
expect(res[0].conflict).to.be.undefined;
|
||||
|
||||
expect(res[1].ok).to.be.undefined;
|
||||
expect(res[1].conflict.o).to.eql([]);
|
||||
expect(res[1].conflict.a).to.eql(['a', 'b', 'c']);
|
||||
expect(res[1].conflict.b).to.eql(['a', 'b', 'c']);
|
||||
|
||||
expect(res[2].ok).to.eql(['ZZ']);
|
||||
expect(res[2].conflict).to.be.undefined;
|
||||
});
|
||||
|
||||
it('can exclude false conflicts', function() {
|
||||
var o = split('AA ZZ'),
|
||||
a = split('AA a b c ZZ'),
|
||||
b = split('AA a b c ZZ'),
|
||||
res = Diff3.diff3_merge(a, o, b, true);
|
||||
|
||||
expect(res[0].ok).to.eql(['AA', 'a', 'b', 'c', 'ZZ']);
|
||||
expect(res[0].conflict).to.be.undefined;
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user