diff --git a/test/integration/client/escape-tests.js b/test/integration/client/escape-tests.js new file mode 100644 index 00000000..40214e03 --- /dev/null +++ b/test/integration/client/escape-tests.js @@ -0,0 +1,153 @@ +var helper = require(__dirname + '/test-helper'); + +function createClient(callback) { + var client = new Client(helper.config); + client.connect(function(err) { + return callback(client); + }); +} + +test('escapeLiteral: no special characters', function() { + createClient(function(client) { + var expected = "'hello world'"; + var actual = client.escapeLiteral('hello world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains double quotes only', function() { + createClient(function(client) { + var expected = "'hello \" world'"; + var actual = client.escapeLiteral('hello " world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains single quotes only', function() { + createClient(function(client) { + var expected = "'hello \'\' world'"; + var actual = client.escapeLiteral('hello \' world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains backslashes only', function() { + createClient(function(client) { + var expected = " E'hello \\\\ world'"; + var actual = client.escapeLiteral('hello \\ world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains single quotes and double quotes', function() { + createClient(function(client) { + var expected = "'hello '' \" world'"; + var actual = client.escapeLiteral('hello \' " world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains double quotes and backslashes', function() { + createClient(function(client) { + var expected = " E'hello \\\\ \" world'"; + var actual = client.escapeLiteral('hello \\ " world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains single quotes and backslashes', function() { + createClient(function(client) { + var expected = " E'hello \\\\ '' world'"; + var actual = client.escapeLiteral('hello \\ \' world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains single quotes, double quotes, and backslashes', function() { + createClient(function(client) { + var expected = " E'hello \\\\ '' \" world'"; + var actual = client.escapeLiteral('hello \\ \' " world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: no special characters', function() { + createClient(function(client) { + var expected = '"hello world"'; + var actual = client.escapeIdentifier('hello world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: contains double quotes only', function() { + createClient(function(client) { + var expected = '"hello "" world"'; + var actual = client.escapeIdentifier('hello " world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: contains single quotes only', function() { + createClient(function(client) { + var expected = '"hello \' world"'; + var actual = client.escapeIdentifier('hello \' world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: contains backslashes only', function() { + createClient(function(client) { + var expected = '"hello \\ world"'; + var actual = client.escapeIdentifier('hello \\ world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: contains single quotes and double quotes', function() { + createClient(function(client) { + var expected = '"hello \' "" world"'; + var actual = client.escapeIdentifier('hello \' " world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: contains double quotes and backslashes', function() { + return createClient(function(client) { + var expected = '"hello \\ "" world"'; + var actual = client.escapeIdentifier('hello \\ " world'); + assert.equal(expected, actual); + client.end(); + return; + }); +}); + +test('escapeIdentifier: contains single quotes and backslashes', function() { + createClient(function(client) { + var expected = '"hello \\ \' world"'; + var actual = client.escapeIdentifier('hello \\ \' world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: contains single quotes, double quotes, and backslashes', function() { + createClient(function(client) { + var expected = '"hello \\ \' "" world"'; + var actual = client.escapeIdentifier('hello \\ \' " world'); + assert.equal(expected, actual); + client.end(); + }); +}); diff --git a/test/native/escape-tests.js b/test/native/escape-tests.js deleted file mode 100644 index 3503be04..00000000 --- a/test/native/escape-tests.js +++ /dev/null @@ -1,120 +0,0 @@ -var helper = require(__dirname + "/../test-helper"); -var Client = require(__dirname + "/../../lib/native"); - -function createClient() { - var client = new Client(helper.config); - client.connect(); - return client; -} - -test('escapeLiteral: no special characters', function() { - var client = createClient(); - var expected = "'hello world'"; - var actual = client.escapeLiteral('hello world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains double quotes only', function() { - var client = createClient(); - var expected = "'hello \" world'"; - var actual = client.escapeLiteral('hello " world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains single quotes only', function() { - var client = createClient(); - var expected = "'hello \'\' world'"; - var actual = client.escapeLiteral('hello \' world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains backslashes only', function() { - var client = createClient(); - var expected = " E'hello \\\\ world'"; - var actual = client.escapeLiteral('hello \\ world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains single quotes and double quotes', function() { - var client = createClient(); - var expected = "'hello '' \" world'"; - var actual = client.escapeLiteral('hello \' " world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains double quotes and backslashes', function() { - var client = createClient(); - var expected = " E'hello \\\\ \" world'"; - var actual = client.escapeLiteral('hello \\ " world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains single quotes and backslashes', function() { - var client = createClient(); - var expected = " E'hello \\\\ '' world'"; - var actual = client.escapeLiteral('hello \\ \' world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains single quotes, double quotes, and backslashes', function() { - var client = createClient(); - var expected = " E'hello \\\\ '' \" world'"; - var actual = client.escapeLiteral('hello \\ \' " world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: no special characters', function() { - var client = createClient(); - var expected = '"hello world"'; - var actual = client.escapeIdentifier('hello world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains double quotes only', function() { - var client = createClient(); - var expected = '"hello "" world"'; - var actual = client.escapeIdentifier('hello " world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains single quotes only', function() { - var client = createClient(); - var expected = '"hello \' world"'; - var actual = client.escapeIdentifier('hello \' world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains backslashes only', function() { - var client = createClient(); - var expected = '"hello \\ world"'; - var actual = client.escapeIdentifier('hello \\ world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains single quotes and double quotes', function() { - var client = createClient(); - var expected = '"hello \' "" world"'; - var actual = client.escapeIdentifier('hello \' " world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains double quotes and backslashes', function() { - var client = createClient(); - var expected = '"hello \\ "" world"'; - var actual = client.escapeIdentifier('hello \\ " world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains single quotes and backslashes', function() { - var client = createClient(); - var expected = '"hello \\ \' world"'; - var actual = client.escapeIdentifier('hello \\ \' world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains single quotes, double quotes, and backslashes', function() { - var client = createClient(); - var expected = '"hello \\ \' "" world"'; - var actual = client.escapeIdentifier('hello \\ \' " world'); - assert.equal(expected, actual); -}); diff --git a/test/unit/client/escape-tests.js b/test/unit/client/escape-tests.js new file mode 100644 index 00000000..40214e03 --- /dev/null +++ b/test/unit/client/escape-tests.js @@ -0,0 +1,153 @@ +var helper = require(__dirname + '/test-helper'); + +function createClient(callback) { + var client = new Client(helper.config); + client.connect(function(err) { + return callback(client); + }); +} + +test('escapeLiteral: no special characters', function() { + createClient(function(client) { + var expected = "'hello world'"; + var actual = client.escapeLiteral('hello world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains double quotes only', function() { + createClient(function(client) { + var expected = "'hello \" world'"; + var actual = client.escapeLiteral('hello " world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains single quotes only', function() { + createClient(function(client) { + var expected = "'hello \'\' world'"; + var actual = client.escapeLiteral('hello \' world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains backslashes only', function() { + createClient(function(client) { + var expected = " E'hello \\\\ world'"; + var actual = client.escapeLiteral('hello \\ world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains single quotes and double quotes', function() { + createClient(function(client) { + var expected = "'hello '' \" world'"; + var actual = client.escapeLiteral('hello \' " world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains double quotes and backslashes', function() { + createClient(function(client) { + var expected = " E'hello \\\\ \" world'"; + var actual = client.escapeLiteral('hello \\ " world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains single quotes and backslashes', function() { + createClient(function(client) { + var expected = " E'hello \\\\ '' world'"; + var actual = client.escapeLiteral('hello \\ \' world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeLiteral: contains single quotes, double quotes, and backslashes', function() { + createClient(function(client) { + var expected = " E'hello \\\\ '' \" world'"; + var actual = client.escapeLiteral('hello \\ \' " world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: no special characters', function() { + createClient(function(client) { + var expected = '"hello world"'; + var actual = client.escapeIdentifier('hello world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: contains double quotes only', function() { + createClient(function(client) { + var expected = '"hello "" world"'; + var actual = client.escapeIdentifier('hello " world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: contains single quotes only', function() { + createClient(function(client) { + var expected = '"hello \' world"'; + var actual = client.escapeIdentifier('hello \' world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: contains backslashes only', function() { + createClient(function(client) { + var expected = '"hello \\ world"'; + var actual = client.escapeIdentifier('hello \\ world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: contains single quotes and double quotes', function() { + createClient(function(client) { + var expected = '"hello \' "" world"'; + var actual = client.escapeIdentifier('hello \' " world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: contains double quotes and backslashes', function() { + return createClient(function(client) { + var expected = '"hello \\ "" world"'; + var actual = client.escapeIdentifier('hello \\ " world'); + assert.equal(expected, actual); + client.end(); + return; + }); +}); + +test('escapeIdentifier: contains single quotes and backslashes', function() { + createClient(function(client) { + var expected = '"hello \\ \' world"'; + var actual = client.escapeIdentifier('hello \\ \' world'); + assert.equal(expected, actual); + client.end(); + }); +}); + +test('escapeIdentifier: contains single quotes, double quotes, and backslashes', function() { + createClient(function(client) { + var expected = '"hello \\ \' "" world"'; + var actual = client.escapeIdentifier('hello \\ \' " world'); + assert.equal(expected, actual); + client.end(); + }); +}); diff --git a/test/unit/connection/escape-tests.js b/test/unit/connection/escape-tests.js deleted file mode 100644 index df23fe05..00000000 --- a/test/unit/connection/escape-tests.js +++ /dev/null @@ -1,113 +0,0 @@ -require(__dirname + "/test-helper"); - -test('escapeLiteral: no special characters', function() { - var client = createClient(); - var expected = "'hello world'"; - var actual = client.escapeLiteral('hello world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains double quotes only', function() { - var client = createClient(); - var expected = "'hello \" world'"; - var actual = client.escapeLiteral('hello " world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains single quotes only', function() { - var client = createClient(); - var expected = "'hello \'\' world'"; - var actual = client.escapeLiteral('hello \' world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains backslashes only', function() { - var client = createClient(); - var expected = " E'hello \\\\ world'"; - var actual = client.escapeLiteral('hello \\ world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains single quotes and double quotes', function() { - var client = createClient(); - var expected = "'hello '' \" world'"; - var actual = client.escapeLiteral('hello \' " world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains double quotes and backslashes', function() { - var client = createClient(); - var expected = " E'hello \\\\ \" world'"; - var actual = client.escapeLiteral('hello \\ " world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains single quotes and backslashes', function() { - var client = createClient(); - var expected = " E'hello \\\\ '' world'"; - var actual = client.escapeLiteral('hello \\ \' world'); - assert.equal(expected, actual); -}); - -test('escapeLiteral: contains single quotes, double quotes, and backslashes', function() { - var client = createClient(); - var expected = " E'hello \\\\ '' \" world'"; - var actual = client.escapeLiteral('hello \\ \' " world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: no special characters', function() { - var client = createClient(); - var expected = '"hello world"'; - var actual = client.escapeIdentifier('hello world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains double quotes only', function() { - var client = createClient(); - var expected = '"hello "" world"'; - var actual = client.escapeIdentifier('hello " world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains single quotes only', function() { - var client = createClient(); - var expected = '"hello \' world"'; - var actual = client.escapeIdentifier('hello \' world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains backslashes only', function() { - var client = createClient(); - var expected = '"hello \\ world"'; - var actual = client.escapeIdentifier('hello \\ world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains single quotes and double quotes', function() { - var client = createClient(); - var expected = '"hello \' "" world"'; - var actual = client.escapeIdentifier('hello \' " world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains double quotes and backslashes', function() { - var client = createClient(); - var expected = '"hello \\ "" world"'; - var actual = client.escapeIdentifier('hello \\ " world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains single quotes and backslashes', function() { - var client = createClient(); - var expected = '"hello \\ \' world"'; - var actual = client.escapeIdentifier('hello \\ \' world'); - assert.equal(expected, actual); -}); - -test('escapeIdentifier: contains single quotes, double quotes, and backslashes', function() { - var client = createClient(); - var expected = '"hello \\ \' "" world"'; - var actual = client.escapeIdentifier('hello \\ \' " world'); - assert.equal(expected, actual); -});