Skip to content

Commit

Permalink
Merge c5b60a1 into fa5913f
Browse files Browse the repository at this point in the history
  • Loading branch information
shaochuancs committed Apr 26, 2016
2 parents fa5913f + c5b60a1 commit 3899477
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 27 deletions.
4 changes: 4 additions & 0 deletions src/htmlparser.js
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,10 @@ var HTMLParser = (function(undefined){
self.fire(type, data);
var lineMatch;
while((lineMatch = regLine.exec(raw))){
self.fire('newline', {
raw: lineMatch.input,
line: line
});
line ++;
lastLineIndex = pos + regLine.lastIndex;
}
Expand Down
2 changes: 1 addition & 1 deletion src/rules/space-tab-mixed-disabled.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ HTMLHint.addRule({
description: 'Do not mix tabs and spaces for indentation.',
init: function(parser, reporter, options){
var self = this;
parser.addListener('text', function(event){
parser.addListener('newline', function(event){
var raw = event.raw;
var reMixed = /(^|\r?\n)([ \t]+)/g;
var match;
Expand Down
8 changes: 4 additions & 4 deletions test/htmlparser.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ describe('HTMLParser: Object parse', function(){
expect(arrEvents[2]).to.event('cdata',
{
tagName: 'script',
raw: 'alert(1);\r\nalert("</html>");'
raw: 'alert(1);alert("</html>");'
});
mapAttrs = parser.getMapAttrs(arrEvents[2].attrs);
expect(mapAttrs.type).to.be('text/javascript');
Expand All @@ -385,7 +385,7 @@ describe('HTMLParser: Object parse', function(){
});
done();
});
parser.parse('<script type="text/javascript">alert(1);\r\nalert("</html>");</script>');
parser.parse('<script type="text/javascript">alert(1);alert("</html>");</script>');
});


Expand All @@ -401,15 +401,15 @@ describe('HTMLParser: Object parse', function(){
expect(arrEvents[2]).to.event('cdata',
{
tagName: 'style',
raw: 'body{font-size:12px;\r\nbackground-color:green;}'
raw: 'body{font-size:12px;background-color:green;}'
});
expect(arrEvents[3]).to.event('tagend',
{
tagName: 'style'
});
done();
});
parser.parse('<style type="text/css">body{font-size:12px;\r\nbackground-color:green;}</style>');
parser.parse('<style type="text/css">body{font-size:12px;background-color:green;}</style>');
});

});
Expand Down
44 changes: 22 additions & 22 deletions test/rules/space-tab-mixed-disabled.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,18 @@ describe('Rules: '+ruldId, function(){

it('Spaces and tabs mixed in front of line should result in an error', function(){
// space before tab
var code = ' <a href="a">bbb</a>';
var code = '\r\n <a href="a">bbb</a>';
var messages = HTMLHint.verify(code, ruleMixOptions);
expect(messages.length).to.be(1);
expect(messages[0].rule.id).to.be(ruldId);
expect(messages[0].line).to.be(1);
expect(messages[0].line).to.be(2);
expect(messages[0].col).to.be(1);
// tab before space
code = ' <a href="a">bbb</a>';
code = '\r\n <a href="a">bbb</a>';
messages = HTMLHint.verify(code, ruleMixOptions);
expect(messages.length).to.be(1);
expect(messages[0].rule.id).to.be(ruldId);
expect(messages[0].line).to.be(1);
expect(messages[0].line).to.be(2);
expect(messages[0].col).to.be(1);
// multi line
code = '<div>\r\n <a href="a">bbb</a>';
Expand All @@ -43,7 +43,7 @@ describe('Rules: '+ruldId, function(){
});

it('Only spaces in front of line should not result in an error', function(){
var code = ' <a href="a">bbb</a>';
var code = '\r\n <a href="a">bbb</a>';
var messages = HTMLHint.verify(code, ruleMixOptions);
expect(messages.length).to.be(0);

Expand All @@ -53,54 +53,54 @@ describe('Rules: '+ruldId, function(){
});

it('Only tabs in front of line should not result in an error', function(){
var code = ' <a href="a">bbb</a>';
var code = '\r\n <a href="a">bbb</a>';
var messages = HTMLHint.verify(code, ruleMixOptions);
expect(messages.length).to.be(0);
});

it('Not only space in front of line should result in an error', function(){
// mixed 1
var code = ' <a href="a">bbb</a>';
var code = '\r\n <a href="a">bbb</a>';
var messages = HTMLHint.verify(code, ruleSpaceOptions);
expect(messages.length).to.be(1);

// mixed 2
code = ' <a href="a">bbb</a>';
code = '\r\n <a href="a">bbb</a>';
messages = HTMLHint.verify(code, ruleSpaceOptions);
expect(messages.length).to.be(1);

// only tab
code = ' <a href="a">bbb</a>';
code = '\r\n <a href="a">bbb</a>';
messages = HTMLHint.verify(code, ruleSpaceOptions);
expect(messages.length).to.be(1);
});

it('Only space in front of line should not result in an error', function(){
var code = ' <a href="a">bbb</a>';
var code = '\r\n <a href="a">bbb</a>';
var messages = HTMLHint.verify(code, ruleSpaceOptions);
expect(messages.length).to.be(0);
});

it('Not only tab in front of line should result in an error', function(){
// mixed 1
var code = ' <a href="a">bbb</a>';
var code = '\r\n <a href="a">bbb</a>';
var messages = HTMLHint.verify(code, ruleTabOptions);
expect(messages.length).to.be(1);

// mixed 2
code = ' <a href="a">bbb</a>';
code = '\r\n <a href="a">bbb</a>';
messages = HTMLHint.verify(code, ruleTabOptions);
expect(messages.length).to.be(1);

// only space
code = ' <a href="a">bbb</a>';
code = '\r\n <a href="a">bbb</a>';
messages = HTMLHint.verify(code, ruleTabOptions);
expect(messages.length).to.be(1);
});

it('Only tab in front of line should not result in an error', function(){
// only tab
var code = ' <a href="a">bbb</a>';
var code = '\r\n <a href="a">bbb</a>';
var messages = HTMLHint.verify(code, ruleTabOptions);
expect(messages.length).to.be(0);
});
Expand Down

0 comments on commit 3899477

Please sign in to comment.