Skip to content

Commit

Permalink
test with 2-byte cent character (¢)
Browse files Browse the repository at this point in the history
  • Loading branch information
Christopher J. Brody committed May 16, 2018
1 parent 49fde7c commit 15a46a6
Showing 1 changed file with 87 additions and 0 deletions.
87 changes: 87 additions & 0 deletions spec/www/spec/db-tx-string-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -515,6 +515,93 @@ var mytests = function() {

describe(suiteName + 'UTF-8 multi-byte character string binding & manipulation tests', function() {

it(suiteName + 'string HEX value test with UTF-8 2-byte cent character (¢) [default sqlite HEX encoding: UTF-6le on Windows & Android 4.1-4.3 (WebKit) Web SQL, UTF-8 otherwise]', function(done) {
var db = openDatabase('UTF8-2-byte-cent-hex-value-test.db');

db.transaction(function(tx) {
expect(tx).toBeDefined();

tx.executeSql('SELECT HEX(?) AS myresult', ['1¢'], function(ignored, rs1) {
expect(rs1).toBeDefined();
expect(rs1.rows).toBeDefined();
expect(rs1.rows.length).toBe(1);

var resultRow1 = rs1.rows.item(0);
expect(resultRow1).toBeDefined();
expect(resultRow1.myresult).toBeDefined();
if (isWindows || (isWebSql && isAndroid && /Android 4.[1-3]/.test(navigator.userAgent)))
expect(resultRow1.myresult).toBe('3100A200'); // (UTF-16le)
else
expect(resultRow1.myresult).toBe('31C2A2'); // (UTF-8)

tx.executeSql("SELECT HEX('@¢') AS myresult", [], function(ignored, rs2) {
expect(rs2).toBeDefined();
expect(rs2.rows).toBeDefined();
expect(rs2.rows.length).toBe(1);

var resultRow2 = rs2.rows.item(0);
expect(resultRow2).toBeDefined();
expect(resultRow2.myresult).toBeDefined();
if (isWindows || (isWebSql && isAndroid && /Android 4.[1-3]/.test(navigator.userAgent)))
expect(resultRow2.myresult).toBe('4000A200'); // (UTF-16le)
else
expect(resultRow2.myresult).toBe('40C2A2'); // (UTF-8)

// Close (plugin only) & finish:
(isWebSql) ? done() : db.close(done, done);
});

});

}, function(error) {
// NOT EXPECTED:
expect(false).toBe(true);
expect(error.message).toBe('--');
// Close (plugin only) & finish:
(isWebSql) ? done() : db.close(done, done);
});
}, MYTIMEOUT);

it(suiteName + 'string value manipulation test with UTF-8 2-byte cent character (¢)', function(done) {
var db = openDatabase('UTF8-2-byte-cent-upper-value-string-test.db');

db.transaction(function(tx) {
expect(tx).toBeDefined();

tx.executeSql('SELECT UPPER(?) AS myresult', ['a¢'], function(ignored, rs1) {
expect(rs1).toBeDefined();
expect(rs1.rows).toBeDefined();
expect(rs1.rows.length).toBe(1);

var resultRow1 = rs1.rows.item(0);
expect(resultRow1).toBeDefined();
expect(resultRow1.myresult).toBeDefined();
expect(resultRow1.myresult).toBe('A¢');

tx.executeSql("SELECT UPPER('b¢') AS myresult", [], function(ignored, rs2) {
expect(rs2).toBeDefined();
expect(rs2.rows).toBeDefined();
expect(rs2.rows.length).toBe(1);

var resultRow2 = rs2.rows.item(0);
expect(resultRow2).toBeDefined();
expect(resultRow2.myresult).toBeDefined();
expect(resultRow2.myresult).toBe('B¢');

// Close (plugin only) & finish:
(isWebSql) ? done() : db.close(done, done);
});

});
}, function(error) {
// NOT EXPECTED:
expect(false).toBe(true);
expect(error.message).toBe('--');
// Close (plugin only) & finish:
(isWebSql) ? done() : db.close(done, done);
});
}, MYTIMEOUT);

it(suiteName + 'string HEX value test with UTF-8 2-byte accented character é [default sqlite HEX encoding: UTF-6le on Windows & Android 4.1-4.3 (WebKit) Web SQL, UTF-8 otherwise]', function(done) {
var db = openDatabase('UTF8-2-byte-accented-character-hex-value-test.db');

Expand Down

0 comments on commit 15a46a6

Please # to comment.