diff --git a/src/az.tokens.js b/src/az.tokens.js
index 17b717c..9706592 100644
--- a/src/az.tokens.js
+++ b/src/az.tokens.js
@@ -113,10 +113,10 @@
this.tokens = [];
this.source = '';
if (typeof text == 'string') {
- this.config = config ? Az.extend(defaults, config) : defaults;
+ this.config = config ? Object.assign({}, defaults, config) : defaults;
this.append(text);
} else {
- this.config = text ? Az.extend(defaults, text) : defaults;
+ this.config = text ? Object.assign({}, defaults, text) : defaults;
}
this.index = -1;
} else {
diff --git a/test/tokens.js b/test/tokens.js
index 7f3c328..befa674 100644
--- a/test/tokens.js
+++ b/test/tokens.js
@@ -2,78 +2,100 @@ var expect = require('chai').expect;
var Az = require('../dist/az');
describe('Az.Tokens', function() {
- it('should return empty array for empty string', function () {
+ it('should return empty array for empty string', function() {
var result = Az.Tokens('').done();
expect(result).to.be.an('array');
expect(result).to.have.length(0);
});
- it('should parse simple tokens correctly', function () {
+ it('should parse simple tokens correctly', function() {
var result = Az.Tokens('Мама мыла раму. What is 42?').done();
expect(result).to.be.an('array');
expect(result).to.have.length(13);
- expect(result[0].type).to.equal('WORD'); // Мама
- expect(result[0].subType).to.equal('CYRIL');
+ expect(result[0].type.toString()).to.equal('WORD'); // Мама
+ expect(result[0].subType.toString()).to.equal('CYRIL');
- expect(result[1].type).to.equal('SPACE'); // пробел
+ expect(result[1].type.toString()).to.equal('SPACE'); // пробел
- expect(result[2].type).to.equal('WORD'); // мыла
- expect(result[2].subType).to.equal('CYRIL');
+ expect(result[2].type.toString()).to.equal('WORD'); // мыла
+ expect(result[2].subType.toString()).to.equal('CYRIL');
- expect(result[3].type).to.equal('SPACE'); // пробел
+ expect(result[3].type.toString()).to.equal('SPACE'); // пробел
- expect(result[4].type).to.equal('WORD'); // раму
- expect(result[4].subType).to.equal('CYRIL');
+ expect(result[4].type.toString()).to.equal('WORD'); // раму
+ expect(result[4].subType.toString()).to.equal('CYRIL');
- expect(result[5].type).to.equal('PUNCT'); // точка
+ expect(result[5].type.toString()).to.equal('PUNCT'); // точка
- expect(result[6].type).to.equal('SPACE'); // пробел
+ expect(result[6].type.toString()).to.equal('SPACE'); // пробел
- expect(result[7].type).to.equal('WORD'); // What
- expect(result[7].subType).to.equal('LATIN');
+ expect(result[7].type.toString()).to.equal('WORD'); // What
+ expect(result[7].subType.toString()).to.equal('LATIN');
- expect(result[8].type).to.equal('SPACE'); // пробел
+ expect(result[8].type.toString()).to.equal('SPACE'); // пробел
- expect(result[9].type).to.equal('WORD'); // is
- expect(result[9].subType).to.equal('LATIN');
+ expect(result[9].type.toString()).to.equal('WORD'); // is
+ expect(result[9].subType.toString()).to.equal('LATIN');
- expect(result[10].type).to.equal('SPACE'); // пробел
+ expect(result[10].type.toString()).to.equal('SPACE'); // пробел
- expect(result[11].type).to.equal('NUMBER'); // 42
+ expect(result[11].type.toString()).to.equal('NUMBER'); // 42
- expect(result[12].type).to.equal('PUNCT'); // вопросительный знак
+ expect(result[12].type.toString()).to.equal('PUNCT'); // вопросительный знак
});
- it('should parse links correctly', function () {
+ it('should parse links correctly', function() {
var result = Az.Tokens('http://site,vk.com,сайт.рф .ru com.').done();
expect(result).to.be.an('array');
expect(result).to.have.length(11);
- expect(result[0].type).to.equal('LINK');
- expect(result[1].type).to.equal('PUNCT');
- expect(result[2].type).to.equal('LINK');
- expect(result[3].type).to.equal('PUNCT');
- expect(result[4].type).to.equal('LINK');
- expect(result[5].type).to.equal('SPACE');
- expect(result[6].type).to.equal('PUNCT');
- expect(result[7].type).to.equal('WORD');
- expect(result[7].subType).to.equal('LATIN');
- expect(result[8].type).to.equal('SPACE');
- expect(result[9].type).to.equal('WORD');
- expect(result[9].subType).to.equal('LATIN');
- expect(result[10].type).to.equal('PUNCT');
+ expect(result[0].type.toString()).to.equal('LINK');
+ expect(result[1].type.toString()).to.equal('PUNCT');
+ expect(result[2].type.toString()).to.equal('LINK');
+ expect(result[3].type.toString()).to.equal('PUNCT');
+ expect(result[4].type.toString()).to.equal('LINK');
+ expect(result[5].type.toString()).to.equal('SPACE');
+ expect(result[6].type.toString()).to.equal('PUNCT');
+ expect(result[7].type.toString()).to.equal('WORD');
+ expect(result[7].subType.toString()).to.equal('LATIN');
+ expect(result[8].type.toString()).to.equal('SPACE');
+ expect(result[9].type.toString()).to.equal('WORD');
+ expect(result[9].subType.toString()).to.equal('LATIN');
+ expect(result[10].type.toString()).to.equal('PUNCT');
});
- it('should parse hashtags correctly', function () {
+ it('should parse hashtags correctly', function() {
var result = Az.Tokens('#1 #tag # #tag@user').done();
expect(result).to.be.an('array');
expect(result).to.have.length(8);
- expect(result[0].type).to.equal('OTHER');
- expect(result[1].type).to.equal('NUMBER');
- expect(result[2].type).to.equal('SPACE');
- expect(result[3].type).to.equal('HASHTAG');
- expect(result[4].type).to.equal('SPACE');
- expect(result[5].type).to.equal('OTHER');
- expect(result[6].type).to.equal('SPACE');
- expect(result[7].type).to.equal('HASHTAG');
+ expect(result[0].type.toString()).to.equal('OTHER');
+ expect(result[1].type.toString()).to.equal('NUMBER');
+ expect(result[2].type.toString()).to.equal('SPACE');
+ expect(result[3].type.toString()).to.equal('HASHTAG');
+ expect(result[4].type.toString()).to.equal('SPACE');
+ expect(result[5].type.toString()).to.equal('OTHER');
+ expect(result[6].type.toString()).to.equal('SPACE');
+ expect(result[7].type.toString()).to.equal('HASHTAG');
});
-});
\ No newline at end of file
+
+ it('should parse html tags correctly', function() {
+ var result = Az.Tokens('Мама мыла раму', {
+ html: true
+ }).done();
+ expect(result).to.be.an('array');
+ expect(result).to.have.length(11);
+ expect(result[0].type.toString()).to.equal('TAG');
+ expect(result[1].type.toString()).to.equal('WORD');
+ expect(result[2].type.toString()).to.equal('TAG');
+ expect(result[2].subType.toString()).to.equal('CLOSING');
+ expect(result[3].type.toString()).to.equal('SPACE');
+ expect(result[4].type.toString()).to.equal('TAG');
+ expect(result[5].type.toString()).to.equal('WORD');
+ expect(result[6].type.toString()).to.equal('TAG');
+ expect(result[6].subType.toString()).to.equal('CLOSING');
+ expect(result[7].type.toString()).to.equal('SPACE');
+ expect(result[8].type.toString()).to.equal('TAG');
+ expect(result[9].type.toString()).to.equal('WORD');
+ expect(result[10].type.toString()).to.equal('TAG');
+ expect(result[10].subType.toString()).to.equal('CLOSING');
+ });
+});