Skip to content

Commit

Permalink
updated webLinks regex to ignore colon at the end of a line and added…
Browse files Browse the repository at this point in the history
… the corresponding tests
  • Loading branch information
jrkong committed Oct 25, 2018
1 parent 1208fc9 commit 2efd28a
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 3 deletions.
28 changes: 26 additions & 2 deletions src/addons/webLinks/webLinks.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,35 @@ describe('webLinks addon', () => {
const term = new MockTerminal();
webLinks.webLinksInit(<any>term);

const row = ' http://foo.com/a~b#c~d?e~f: ';
const row = ' http://foo.com/a~b#c~d?e~f ';

const match = row.match(term.regex);
const uri = match[term.options.matchIndex];

assert.equal(uri, 'http://foo.com/a~b#c~d?e~f:');
assert.equal(uri, 'http://foo.com/a~b#c~d?e~f');
});

it('should allow : character in URI path', () => {
const term = new MockTerminal();
webLinks.webLinksInit(<any>term);

const row = ' http://foo.com/colon:test ';

const match = row.match(term.regex);
const uri = match[term.options.matchIndex];

assert.equal(uri, 'http://foo.com/colon:test');
});

it('should not allow : character at the end of a URI path', () => {
const term = new MockTerminal();
webLinks.webLinksInit(<any>term);

const row = ' http://foo.com/colon:test: ';

const match = row.match(term.regex);
const uri = match[term.options.matchIndex];

assert.equal(uri, 'http://foo.com/colon:test');
});
});
2 changes: 1 addition & 1 deletion src/addons/webLinks/webLinks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const ipClause = '((\\d{1,3}\\.){3}\\d{1,3})';
const localHostClause = '(localhost)';
const portClause = '(:\\d{1,5})';
const hostClause = '((' + domainBodyClause + '\\.' + tldClause + ')|' + ipClause + '|' + localHostClause + ')' + portClause + '?';
const pathClause = '(\\/[\\/\\w\\.\\-%~:]*)*';
const pathClause = '(\\/[\\/\\w\\.\\-%~:]*)*([^:\\s])';
const queryStringHashFragmentCharacterSet = '[0-9\\w\\[\\]\\(\\)\\/\\?\\!#@$%&\'*+,:;~\\=\\.\\-]*';
const queryStringClause = '(\\?' + queryStringHashFragmentCharacterSet + ')?';
const hashFragmentClause = '(#' + queryStringHashFragmentCharacterSet + ')?';
Expand Down

0 comments on commit 2efd28a

Please sign in to comment.