devstar插件
This commit is contained in:
87
node_modules/mark.js/test/specs/ranges/no-match.js
generated
vendored
Normal file
87
node_modules/mark.js/test/specs/ranges/no-match.js
generated
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
'use strict';
|
||||
describe('mark with range no matches', function() {
|
||||
var $ctx1, $ctx2, $ctx3, errCall, notFound;
|
||||
beforeEach(function(done) {
|
||||
loadFixtures('ranges/no-match.html');
|
||||
|
||||
errCall = 0;
|
||||
notFound = [];
|
||||
$ctx1 = $('.ranges-no-match > div:nth-child(1)');
|
||||
$ctx2 = $('.ranges-no-match > div:nth-child(2)');
|
||||
$ctx3 = $('.ranges-no-match > div:nth-child(3)');
|
||||
new Mark($ctx1[0]).markRanges([
|
||||
{ start: -20, length: -12 },
|
||||
// { start: 0, length: 3 } "should" only contain whitespace, so it
|
||||
// will be skipped
|
||||
{ start: 0, length: 3 },
|
||||
// found
|
||||
{ start: 30, length: 5},
|
||||
// skipped
|
||||
{ start: 1500, length: 500 }
|
||||
], {
|
||||
'noMatch': function(item) {
|
||||
notFound = notFound.concat(item);
|
||||
},
|
||||
'done': function() {
|
||||
new Mark($ctx2[0]).markRanges([
|
||||
{ start: -8, length: 5 },
|
||||
{ start: -1, length: 20 }
|
||||
], {
|
||||
'noMatch': function(item) {
|
||||
notFound = notFound.concat(item);
|
||||
},
|
||||
'done': function() {
|
||||
new Mark($ctx3[0]).markRanges([
|
||||
{ start: 99, length: 9999 }
|
||||
], {
|
||||
'each': function(node, range) {
|
||||
$(node).attr({
|
||||
'data-range-start': range.start,
|
||||
'data-range-length': range.length
|
||||
});
|
||||
},
|
||||
'noMatch': function(item) {
|
||||
notFound = notFound.concat(item);
|
||||
},
|
||||
'done': function() {
|
||||
// non-array first element shows an error
|
||||
new Mark($ctx3[0]).markRanges(['pie'], {
|
||||
'noMatch': function(item) {
|
||||
errCall++;
|
||||
notFound = notFound.concat(item);
|
||||
},
|
||||
'done': done
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
it('should report each range non-match', function() {
|
||||
expect($ctx1.find('mark')).toHaveLength(1);
|
||||
expect($ctx2.find('mark')).toHaveLength(0);
|
||||
var ranges = notFound.sort(function(a, b) {
|
||||
return a[0] - b[0];
|
||||
});
|
||||
expect(JSON.stringify(ranges)).toEqual(JSON.stringify([
|
||||
{ start: -20, length: -12 },
|
||||
{ start: 0, length: 3 },
|
||||
{ start: 1500, length: 500 },
|
||||
{ start: -8, length: 5 },
|
||||
{ start: -1, length: 20 },
|
||||
'pie'
|
||||
]));
|
||||
expect(errCall).toBe(1);
|
||||
});
|
||||
it('should allow out of range max', function() {
|
||||
var $mark3 = $ctx3.find('mark');
|
||||
// using 2 because the closing </p> gets wrapped creating a second mark
|
||||
expect($mark3).toHaveLength(2);
|
||||
expect($mark3.attr('data-range-start')).toBe('99');
|
||||
// end range does not get adjusted
|
||||
expect($mark3.attr('data-range-length')).toBe('9999');
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user