New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

stringtokenizer

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

stringtokenizer - npm Package Compare versions

Comparing version
0.0.2
to
0.0.3
+126
test/unit.tokenizer.js
module.exports = {
setUp: function(callback) {
this.tokenizer = require('../lib/tokenizer.js').getInstance();
callback();
},
"Test tokenization without any variables": function(test) {
var tokenized = this.tokenizer.tokenize('hello world');
test.ok(tokenized);
test.ok(tokenized.template);
test.ok(tokenized.matcher);
test.ok(tokenized.tokens);
test.equals('hello world', tokenized.template);
test.equals('/^hello world$/', tokenized.matcher.toString());
test.equals(0, tokenized.tokens.length);
test.done();
},
"Test tokenization with a single simple variable": function(test) {
var tokenized = this.tokenizer.tokenize('/user/{userId}');
test.ok(tokenized);
test.ok(tokenized);
test.ok(tokenized.template);
test.ok(tokenized.matcher);
test.ok(tokenized.tokens);
test.equals('/user/{userId}', tokenized.template);
test.equals('/^/user/([\\w\\d]+)$/', tokenized.matcher.toString());
test.equals(1, tokenized.tokens.length);
test.equals('userId', tokenized.tokens[0]);
test.done();
},
"Test tokenization with multiple variables": function(test) {
var tokenized = this.tokenizer.tokenize('/one/{two}/three/{four}');
test.ok(tokenized);
test.ok(tokenized);
test.ok(tokenized.template);
test.ok(tokenized.matcher);
test.ok(tokenized.tokens);
test.equals('/one/{two}/three/{four}', tokenized.template);
test.equals('/^/one/([\\w\\d]+)/three/([\\w\\d]+)$/', tokenized.matcher.toString());
test.equals(2, tokenized.tokens.length);
test.equals('two', tokenized.tokens[0]);
test.done();
},
"Test tokenization with custom matcher": function(test) {
var tokenized = this.tokenizer.tokenize('/user/{userId:[0-9]{4}}');
test.ok(tokenized);
test.ok(tokenized);
test.ok(tokenized.template);
test.ok(tokenized.matcher);
test.ok(tokenized.tokens);
test.equals('/user/{userId:[0-9]{4}}', tokenized.template);
test.equals('/^/user/([0-9]{4})$/', tokenized.matcher.toString());
test.equals(1, tokenized.tokens.length);
test.equals('userId', tokenized.tokens[0]);
test.done();
},
"Test parsing with tokenized object - no match": function(test) {
var tokenized = this.tokenizer.tokenize('hello world');
var parsed = this.tokenizer.parse('hello worldd', tokenized);
test.ok(!parsed);
test.done();
},
"Test parsing with tokenized object containing a single variable": function(test) {
var tokenized = this.tokenizer.tokenize('/user/{userId}');
var parsed = this.tokenizer.parse('/user/1234', tokenized);
test.ok(parsed);
test.ok(parsed.userId);
test.equals('1234', parsed.userId);
var parsed = this.tokenizer.parse('/user/bcarr', tokenized);
test.ok(parsed);
test.equals('bcarr', parsed.userId);
test.done();
},
"Test parsing with tokenized object containing single variable with custom matcher": function(test) {
var tokenized = this.tokenizer.tokenize('/user/{userId:[0-9]{4}}');
var parsed = this.tokenizer.parse('/user/123', tokenized);
test.ok(!parsed); // no match - null parsed object
var parsed = this.tokenizer.parse('/user/12345', tokenized);
test.ok(!parsed) // no match - null parsed object
var parsed = this.tokenizer.parse('/user/asdf', tokenized);
test.ok(!parsed); // no match - null parsed object
var parsed = this.tokenizer.parse('/user/1234', tokenized);
test.ok(parsed) // good match!
test.ok(parsed.userId);
test.equals('1234', parsed.userId);
test.done();
}
};
+2
-2

@@ -5,3 +5,3 @@ {

"description": "JavaScript string parsing micro-module for Nodejs.",
"version": "0.0.2",
"version": "0.0.3",
"repository": {

@@ -19,3 +19,3 @@ "type": "git",

"scripts": {
"test": "nodeunit tests/"
"test": "nodeunit test/"
},

@@ -22,0 +22,0 @@ "keywords": [

@@ -11,4 +11,35 @@ Nodejs StringTokenizer

Install: `npm install`
Installation
---------------
npm install stringtokenizer
Test: `npm test`
Use
---------------
var tokenizer = require('stringtokenizer').getInstance();
var tokenized = tokenizer.tokenize("/user/{id}");
var parsed = tokenizer.parse("/user/1234", tokenized);
Testing
---------------
npm test
License
-------
The MIT License
Copyright (c) 2013 Brian Carr
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
module.exports = {
setUp: function(callback) {
this.tokenizer = require('../lib/tokenizer.js').getInstance();
callback();
},
"Test tokenization without any variables": function(test) {
var tokenized = this.tokenizer.tokenize('hello world');
test.ok(tokenized);
test.ok(tokenized.template);
test.ok(tokenized.matcher);
test.ok(tokenized.tokens);
test.equals('hello world', tokenized.template);
test.equals('/^hello world$/', tokenized.matcher.toString());
test.equals(0, tokenized.tokens.length);
test.done();
},
"Test tokenization with a single simple variable": function(test) {
var tokenized = this.tokenizer.tokenize('/user/{userId}');
test.ok(tokenized);
test.ok(tokenized);
test.ok(tokenized.template);
test.ok(tokenized.matcher);
test.ok(tokenized.tokens);
test.equals('/user/{userId}', tokenized.template);
test.equals('/^/user/([\\w\\d]+)$/', tokenized.matcher.toString());
test.equals(1, tokenized.tokens.length);
test.equals('userId', tokenized.tokens[0]);
test.done();
},
"Test tokenization with multiple variables": function(test) {
var tokenized = this.tokenizer.tokenize('/one/{two}/three/{four}');
test.ok(tokenized);
test.ok(tokenized);
test.ok(tokenized.template);
test.ok(tokenized.matcher);
test.ok(tokenized.tokens);
test.equals('/one/{two}/three/{four}', tokenized.template);
test.equals('/^/one/([\\w\\d]+)/three/([\\w\\d]+)$/', tokenized.matcher.toString());
test.equals(2, tokenized.tokens.length);
test.equals('two', tokenized.tokens[0]);
test.done();
},
"Test tokenization with custom matcher": function(test) {
var tokenized = this.tokenizer.tokenize('/user/{userId:[0-9]{4}}');
test.ok(tokenized);
test.ok(tokenized);
test.ok(tokenized.template);
test.ok(tokenized.matcher);
test.ok(tokenized.tokens);
test.equals('/user/{userId:[0-9]{4}}', tokenized.template);
test.equals('/^/user/([0-9]{4})$/', tokenized.matcher.toString());
test.equals(1, tokenized.tokens.length);
test.equals('userId', tokenized.tokens[0]);
test.done();
},
"Test parsing with tokenized object - no match": function(test) {
var tokenized = this.tokenizer.tokenize('hello world');
var parsed = this.tokenizer.parse('hello worldd', tokenized);
test.ok(!parsed);
test.done();
},
"Test parsing with tokenized object containing a single variable": function(test) {
var tokenized = this.tokenizer.tokenize('/user/{userId}');
var parsed = this.tokenizer.parse('/user/1234', tokenized);
test.ok(parsed);
test.ok(parsed.userId);
test.equals('1234', parsed.userId);
var parsed = this.tokenizer.parse('/user/bcarr', tokenized);
test.ok(parsed);
test.equals('bcarr', parsed.userId);
test.done();
},
"Test parsing with tokenized object containing single variable with custom matcher": function(test) {
var tokenized = this.tokenizer.tokenize('/user/{userId:[0-9]{4}}');
var parsed = this.tokenizer.parse('/user/123', tokenized);
test.ok(!parsed); // no match - null parsed object
var parsed = this.tokenizer.parse('/user/12345', tokenized);
test.ok(!parsed) // no match - null parsed object
var parsed = this.tokenizer.parse('/user/asdf', tokenized);
test.ok(!parsed); // no match - null parsed object
var parsed = this.tokenizer.parse('/user/1234', tokenized);
test.ok(parsed) // good match!
test.ok(parsed.userId);
test.equals('1234', parsed.userId);
test.done();
}
};