mirror of https://gitee.com/bigwinds/arangodb
added encoding tests
This commit is contained in:
parent
8d12f741bb
commit
260554cb35
|
@ -456,6 +456,7 @@ SHELL_COMMON = \
|
|||
@top_srcdir@/js/common/tests/shell-rename-noncluster.js \
|
||||
@top_srcdir@/js/common/tests/shell-simple-query.js \
|
||||
@top_srcdir@/js/common/tests/shell-statement.js \
|
||||
@top_srcdir@/js/common/tests/shell-statement-encoding-noncluster.js \
|
||||
@top_srcdir@/js/common/tests/shell-statement-noncluster.js \
|
||||
@top_srcdir@/js/common/tests/shell-explain-noncluster.js \
|
||||
@top_srcdir@/js/common/tests/shell-tasks-timecritical.js \
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -300,6 +300,145 @@ function AttributesSuite () {
|
|||
}
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test utf8 handling
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testUtf8AttributeValues : function () {
|
||||
var data =[
|
||||
{"@language":"af","@value":"Kenia"},
|
||||
{"@language":"ak","@value":"Kɛnya"},
|
||||
{"@language":"am","@value":"ኬንያ"},
|
||||
{"@language":"an","@value":"Kenia"},
|
||||
{"@language":"ar","@value":"كينيا"},
|
||||
{"@language":"ast","@value":"Keña"},
|
||||
{"@language":"az","@value":"Kenya"},
|
||||
{"@language":"be","@value":"Кенія"},
|
||||
{"@language":"bg","@value":"Кения"},
|
||||
{"@language":"bm","@value":"Keniya"},
|
||||
{"@language":"bn","@value":"কেনিয়া"},
|
||||
{"@language":"bo","@value":"ཁེན་ཉི་ཡ།"},
|
||||
{"@language":"br","@value":"Kenya"},
|
||||
{"@language":"bs","@value":"Kenija"},
|
||||
{"@language":"ca","@value":"Kènia"},
|
||||
{"@language":"cs","@value":"Keňa"},
|
||||
{"@language":"cy","@value":"Cenia"},
|
||||
{"@language":"da","@value":"Kenya"},
|
||||
{"@language":"de","@value":"Kenia"},
|
||||
{"@language":"dz","@value":"ཀེ་ནི་ཡ"},
|
||||
{"@language":"ee","@value":"Kenya nutome"},
|
||||
{"@language":"el","@value":"Κένυα"},
|
||||
{"@language":"en","@value":"Kenya"},
|
||||
{"@language":"eo","@value":"Kenjo"},
|
||||
{"@language":"es","@value":"Kenia"},
|
||||
{"@language":"et","@value":"Keenia"},
|
||||
{"@language":"eu","@value":"Kenia"},
|
||||
{"@language":"fa","@value":"کنیا"},
|
||||
{"@language":"ff","@value":"Keñaa"},
|
||||
{"@language":"fi","@value":"Kenia"},
|
||||
{"@language":"fo","@value":"Kenja"},
|
||||
{"@language":"fr","@value":"Kenya"},
|
||||
{"@language":"frp","@value":"Kenia"},
|
||||
{"@language":"ga","@value":"An Chéinia"},
|
||||
{"@language":"gd","@value":"A Cheinia"},
|
||||
{"@language":"gl","@value":"Quenia"},
|
||||
{"@language":"gu","@value":"કેન્યા"},
|
||||
{"@language":"ha","@value":"Kenya"},
|
||||
{"@language":"hbs","@value":"Kenija"},
|
||||
{"@language":"he","@value":"קניה"},
|
||||
{"@language":"hi","@value":"केन्या"},
|
||||
{"@language":"hr","@value":"Kenija"},
|
||||
{"@language":"hsb","@value":"Kenija"},
|
||||
{"@language":"hu","@value":"Kenya"},
|
||||
{"@language":"hy","@value":"Քենիա"},
|
||||
{"@language":"ia","@value":"Kenya"},
|
||||
{"@language":"id","@value":"Kenya"},
|
||||
{"@language":"io","@value":"Kenia"},
|
||||
{"@language":"is","@value":"Kenýa"},
|
||||
{"@language":"it","@value":"Kenya"},
|
||||
{"@language":"ja","@value":"ケニア共和国"},
|
||||
{"@language":"ka","@value":"კენია"},
|
||||
{"@language":"ki","@value":"Kenya"},
|
||||
{"@language":"kl","@value":"Kenya"},
|
||||
{"@language":"km","@value":"កេនយ៉ា"},
|
||||
{"@language":"kn","@value":"ಕೀನ್ಯಾ"},
|
||||
{"@language":"ko","@value":"케냐"},
|
||||
{"@language":"ku","@value":"Kenya"},
|
||||
{"@language":"kw","@value":"Kenya"},
|
||||
{"@language":"la","@value":"Kenia"},
|
||||
{"@language":"lg","@value":"Kenya"},
|
||||
{"@language":"li","@value":"Kenia"},
|
||||
{"@language":"ln","@value":"Kenya"},
|
||||
{"@language":"lo","@value":"ເຄນຢ່າ"},
|
||||
{"@language":"lt","@value":"Kenija"},
|
||||
{"@language":"lu","@value":"Kenya"},
|
||||
{"@language":"lv","@value":"Kenija"},
|
||||
{"@language":"mg","@value":"Kenya"},
|
||||
{"@language":"mk","@value":"Кенија"},
|
||||
{"@language":"ml","@value":"കെനിയ"},
|
||||
{"@language":"mr","@value":"केनिया"},
|
||||
{"@language":"ms","@value":"Kenya"},
|
||||
{"@language":"mt","@value":"Kenja"},
|
||||
{"@language":"my","@value":"ကင်ညာ"},
|
||||
{"@language":"na","@value":"Keniya"},
|
||||
{"@language":"nb","@value":"Kenya"},
|
||||
{"@language":"nd","@value":"Khenya"},
|
||||
{"@language":"nds","@value":"Kenia"},
|
||||
{"@language":"ne","@value":"केन्या"},
|
||||
{"@language":"nl","@value":"Kenia"},
|
||||
{"@language":"nn","@value":"Kenya"},
|
||||
{"@language":"no","@value":"Kenya"},
|
||||
{"@language":"oc","@value":"Kenya"},
|
||||
{"@language":"om","@value":"Keeniyaa"},
|
||||
{"@language":"or","@value":"କେନିୟା"},
|
||||
{"@language":"pam","@value":"Kenya"},
|
||||
{"@language":"pl","@value":"Kenia"},
|
||||
{"@language":"pms","@value":"Chenia"},
|
||||
{"@language":"pt","@value":"Quênia"},
|
||||
{"@language":"rm","@value":"Kenia"},
|
||||
{"@language":"rn","@value":"Kenya"},
|
||||
{"@language":"ro","@value":"Kenya"},
|
||||
{"@language":"ru","@value":"Кения"},
|
||||
{"@language":"sa","@value":"केन्या"},
|
||||
{"@language":"se","@value":"Kenia"},
|
||||
{"@language":"sg","@value":"Kenyäa"},
|
||||
{"@language":"si","@value":"කෙන්යාව"},
|
||||
{"@language":"sk","@value":"Keňa"},
|
||||
{"@language":"sl","@value":"Kenija"},
|
||||
{"@language":"sn","@value":"Kenya"},
|
||||
{"@language":"so","@value":"Kiinya"},
|
||||
{"@language":"sq","@value":"Kenia"},
|
||||
{"@language":"sr","@value":"Кенија"},
|
||||
{"@language":"sv","@value":"Kenya"},
|
||||
{"@language":"sw","@value":"Kenya"},
|
||||
{"@language":"ta","@value":"கென்யா"},
|
||||
{"@language":"te","@value":"కెన్యా"},
|
||||
{"@language":"tg","@value":"Кения"},
|
||||
{"@language":"th","@value":"ประเทศเคนยา"},
|
||||
{"@language":"ti","@value":"ኬንያ"},
|
||||
{"@language":"tl","@value":"Kenya"},
|
||||
{"@language":"to","@value":"Kenia"},
|
||||
{"@language":"tr","@value":"Kenya"},
|
||||
{"@language":"ug","@value":"كېنىيە"},
|
||||
{"@language":"uk","@value":"Кенія"},
|
||||
{"@language":"ur","@value":"کینیا"},
|
||||
{"@language":"vi","@value":"Kê-ni-a (Kenya)"},
|
||||
{"@language":"vo","@value":"Kenyän"},
|
||||
{"@language":"yo","@value":"Orílẹ́ède Kenya"},
|
||||
{"@language":"zh","@value":"肯尼亚"},
|
||||
{"@language":"zu","@value":"i-Kenya"}
|
||||
];
|
||||
|
||||
data.forEach(function(value) {
|
||||
c.truncate();
|
||||
c.insert(value);
|
||||
|
||||
var doc = c.toArray()[0];
|
||||
assertEqual(value["@language"], doc["@language"]);
|
||||
assertEqual(value["@value"], doc["@value"]);
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
|
|
@ -0,0 +1,132 @@
|
|||
/*global require, assertEqual, assertTrue */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test the AQL statement results encoding
|
||||
///
|
||||
/// @file
|
||||
///
|
||||
/// DISCLAIMER
|
||||
///
|
||||
/// Copyright 2010-2012 triagens GmbH, Cologne, Germany
|
||||
///
|
||||
/// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
/// you may not use this file except in compliance with the License.
|
||||
/// You may obtain a copy of the License at
|
||||
///
|
||||
/// http://www.apache.org/licenses/LICENSE-2.0
|
||||
///
|
||||
/// Unless required by applicable law or agreed to in writing, software
|
||||
/// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
/// See the License for the specific language governing permissions and
|
||||
/// limitations under the License.
|
||||
///
|
||||
/// Copyright holder is triAGENS GmbH, Cologne, Germany
|
||||
///
|
||||
/// @author Jan Steemann
|
||||
/// @author Copyright 2012, triAGENS GmbH, Cologne, Germany
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
var jsunity = require("jsunity");
|
||||
|
||||
var arangodb = require("org/arangodb");
|
||||
var db = arangodb.db;
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- statement-related tests
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test suite: statement results encoding
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function StatementResultEncodingSuite () {
|
||||
"use strict";
|
||||
|
||||
var c = null;
|
||||
var countries = JSON.parse(require("fs").read("js/common/tests/countries.json"));
|
||||
|
||||
return {
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief set up
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
setUp : function () {
|
||||
db._useDatabase("_system");
|
||||
db._drop("UnitTestsShellStatement");
|
||||
|
||||
c = db._create("UnitTestsShellStatement");
|
||||
countries.forEach(function(country) {
|
||||
c.insert(country);
|
||||
});
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief tear down
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
tearDown : function () {
|
||||
db._drop("UnitTestsShellStatement");
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test query all
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testQueryAll : function () {
|
||||
var results = db._query("FOR t IN UnitTestsShellStatement RETURN t").toArray();
|
||||
var map = { };
|
||||
results.forEach(function(result) {
|
||||
delete result._key;
|
||||
delete result._rev;
|
||||
delete result._id;
|
||||
assertTrue(result.hasOwnProperty("name"));
|
||||
assertTrue(result.hasOwnProperty("alternateName"));
|
||||
map[result.name] = result;
|
||||
});
|
||||
|
||||
countries.forEach(function(country) {
|
||||
assertEqual(country, map[country.name]);
|
||||
});
|
||||
},
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief test query all
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
testQueryAttribute : function () {
|
||||
var results = db._query("FOR t IN UnitTestsShellStatement " +
|
||||
"LET l = (FOR x IN t.alternateName FILTER x.`@language` == 'bn' RETURN x) " +
|
||||
"RETURN { name: t.name, alternateName: l }").toArray();
|
||||
var map = { };
|
||||
results.forEach(function(result) {
|
||||
delete result._key;
|
||||
delete result._rev;
|
||||
delete result._id;
|
||||
map[result.name] = result;
|
||||
assertTrue(result.hasOwnProperty("name"));
|
||||
assertTrue(result.hasOwnProperty("alternateName"));
|
||||
});
|
||||
|
||||
countries.forEach(function(country) {
|
||||
assertEqual(country.alternateName.filter(function(c) {
|
||||
return c["@language"] === "bn";
|
||||
}), map[country.name].alternateName);
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief executes the test suite
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
jsunity.run(StatementResultEncodingSuite);
|
||||
return jsunity.done();
|
||||
|
||||
// Local Variables:
|
||||
// mode: outline-minor
|
||||
// outline-regexp: "^\\(/// @brief\\|/// @addtogroup\\|// --SECTION--\\|/// @page\\|/// @}\\)"
|
||||
// End:
|
|
@ -771,7 +771,8 @@ char* TRI_normalize_utf16_to_NFC (TRI_memory_zone_t* zone,
|
|||
break;
|
||||
}
|
||||
|
||||
if (status == U_BUFFER_OVERFLOW_ERROR) {
|
||||
if (status == U_BUFFER_OVERFLOW_ERROR ||
|
||||
status == U_STRING_NOT_TERMINATED_WARNING) {
|
||||
// output buffer was too small. now re-try with a bigger buffer (inLength + overhead size)
|
||||
if (mustFree) {
|
||||
// free original buffer first so we don't leak
|
||||
|
|
Loading…
Reference in New Issue