You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by ro...@apache.org on 2011/06/14 21:38:28 UTC
svn commit: r1135763 - in /thrift/trunk:
lib/java/test/org/apache/thrift/server/ServerTestBase.java
lib/js/test/test.html lib/js/thrift.js test/ThriftTest.thrift
Author: roger
Date: Tue Jun 14 19:38:27 2011
New Revision: 1135763
URL: http://svn.apache.org/viewvc?rev=1135763&view=rev
Log:
THRIFT-1202 Malformed JSON for map<string,type> services parameters
Patch: Henrique Mendonca
Modified:
thrift/trunk/lib/java/test/org/apache/thrift/server/ServerTestBase.java
thrift/trunk/lib/js/test/test.html
thrift/trunk/lib/js/thrift.js
thrift/trunk/test/ThriftTest.thrift
Modified: thrift/trunk/lib/java/test/org/apache/thrift/server/ServerTestBase.java
URL: http://svn.apache.org/viewvc/thrift/trunk/lib/java/test/org/apache/thrift/server/ServerTestBase.java?rev=1135763&r1=1135762&r2=1135763&view=diff
==============================================================================
--- thrift/trunk/lib/java/test/org/apache/thrift/server/ServerTestBase.java (original)
+++ thrift/trunk/lib/java/test/org/apache/thrift/server/ServerTestBase.java Tue Jun 14 19:38:27 2011
@@ -38,13 +38,7 @@ import org.apache.thrift.protocol.TProto
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
-import thrift.test.Insanity;
-import thrift.test.Numberz;
-import thrift.test.ThriftTest;
-import thrift.test.Xception;
-import thrift.test.Xception2;
-import thrift.test.Xtruct;
-import thrift.test.Xtruct2;
+import thrift.test.*;
public abstract class ServerTestBase extends TestCase {
@@ -104,15 +98,14 @@ public abstract class ServerTestBase ext
public Map<Integer,Integer> testMap(Map<Integer,Integer> thing) {
System.out.print("testMap({");
- boolean first = true;
- for (int key : thing.keySet()) {
- if (first) {
- first = false;
- } else {
- System.out.print(", ");
- }
- System.out.print(key + " => " + thing.get(key));
- }
+ System.out.print(thing);
+ System.out.print("})\n");
+ return thing;
+ }
+
+ public Map<String,String> testStringMap(Map<String,String> thing) {
+ System.out.print("testStringMap({");
+ System.out.print(thing);
System.out.print("})\n");
return thing;
}
Modified: thrift/trunk/lib/js/test/test.html
URL: http://svn.apache.org/viewvc/thrift/trunk/lib/js/test/test.html?rev=1135763&r1=1135762&r2=1135763&view=diff
==============================================================================
--- thrift/trunk/lib/js/test/test.html (original)
+++ thrift/trunk/lib/js/test/test.html Tue Jun 14 19:38:27 2011
@@ -43,15 +43,16 @@
var protocol = new Thrift.Protocol(transport);
var client = new ThriftTest.ThriftTestClient(protocol);
+ // all Languages in UTF-8
+ var stringTest = "Afrikaans, Alemannisch, Aragonés, اÙعربÙØ©, Ù
صرÙ, Asturianu, Aymar aru, AzÉrbaycan, ÐаÑҡоÑÑ, Boarisch, ŽemaitÄÅ¡ka, ÐелаÑÑÑкаÑ, ÐелаÑÑÑÐºÐ°Ñ (ÑаÑаÑкевÑÑа), ÐÑлгаÑÑки, Bamanankan, বাà¦à¦²à¦¾, Brezhoneg, Bosanski, Català , Mìng-dÄ̤ng-ngá¹³Ì, ÐоÑ
Ñийн, Cebuano, á£á³á©, Äesky, СловѣÌнÑÑÐºÑ / â°â°â°â°â°¡â°â° â°â°â°, ЧÓваÑла, Cymraeg, Dansk, Zazaki, ÞÞ¨ÞÞ¬ÞÞ¨ÞÞ¦ÞÞ°, Îλληνικά, Emilià n e rumagnòl, English, Esperanto, Español, Eesti, Euskara, ÙارسÛ, Suomi, Võro, Føroyskt, Français, Arpetan, Furlan, Frysk, Gaeilge, è´èª, Gà idhlig,
Galego, Avañe'ẽ, àªà«àªàª°àª¾àª¤à«, Gaelg, ×¢×ר×ת, हिनà¥à¤¦à¥, Fiji Hindi, Hrvatski, Kreyòl ayisyen, Magyar, ÕÕ¡ÕµÕ¥ÖÕ¥Õ¶, Interlingua, Bahasa Indonesia, Ilokano, Ido, Ãslenska, Italiano, æ¥æ¬èª, Lojban, Basa Jawa, á¥áá áá£áá, Kongo, Kalaallisut, à²à²¨à³à²¨à²¡, íêµì´, ÐÑаÑаÑай-ÐалкÑаÑ, Ripoarisch, Kurdî, Ðоми, Kernewek, ÐÑÑгÑзÑа, Latina, Ladino, Lëtzebuergesch, Limburgs, Lingála, ລາວ, Lietuvių, LatvieÅ¡u, Basa Banyumasan, Malagasy, ÐакедонÑки, മലയാളà´, मराठà¥, Bahasa Melayu, Ù
ازÙرÙÙÛ, Nnapulitano, Nedersaksisch, नà¥à¤ªà¤¾à¤² à¤à¤¾à¤·à¤¾, Nederlands, âªNorsk (ny
norsk)â¬, âªNorsk (bokmÃ¥l)â¬, Nouormand, Diné bizaad, Occitan, ÐÑонаÑ, Papiamentu, Deitsch, Norfuk / Pitkern, Polski, Ù¾ÙجابÛ, Ù¾ÚتÙ, Português, Runa Simi, Rumantsch, Romani, RomânÄ, Ð ÑÑÑкий, СаÑ
а ÑÑла, Sardu, Sicilianu, Scots, Sámegiella, Simple English, SlovenÄina, SlovenÅ¡Äina, СÑпÑки / Srpski, Seeltersk, Svenska, Kiswahili, தமிழà¯, à°¤à±à°²à±à°à±, Тоҷикӣ, à¹à¸à¸¢, Türkmençe, Tagalog, Türkçe, ТаÑаÑÑа/Tatarça, УкÑаÑнÑÑка, اردÙ, Tiếng Viá»t, Volapük, Walon, Winaray, å´è¯, isiXhosa, ××Ö´××ש, Yorùbá, Zeêuws, ä¸æ, Bân-lâm-gú, ç²µèª";
+
module("Base Types");
-
+
test("Void", function() {
equals(client.testVoid(), undefined);
});
test("String", function() {
- // all Languages in UTF-8
- var stringTest = "Afrikaans, Alemannisch, Aragonés, اÙعربÙØ©, Ù
صرÙ, Asturianu, Aymar aru, AzÉrbaycan, ÐаÑҡоÑÑ, Boarisch, ŽemaitÄÅ¡ka, ÐелаÑÑÑкаÑ, ÐелаÑÑÑÐºÐ°Ñ (ÑаÑаÑкевÑÑа), ÐÑлгаÑÑки, Bamanankan, বাà¦à¦²à¦¾, Brezhoneg, Bosanski, Català , Mìng-dÄ̤ng-ngá¹³Ì, ÐоÑ
Ñийн, Cebuano, á£á³á©, Äesky, СловѣÌнÑÑÐºÑ / â°â°â°â°â°¡â°â° â°â°â°, ЧÓваÑла, Cymraeg, Dansk, Zazaki, ÞÞ¨ÞÞ¬ÞÞ¨ÞÞ¦ÞÞ°, Îλληνικά, Emilià n e rumagnòl, English, Esperanto, Español, Eesti, Euskara, ÙارسÛ, Suomi, Võro, Føroyskt, Français, Arpetan, Furlan, Frysk, Gaeilge, è´èª, Gà idhli
g, Galego, Avañe'ẽ, àªà«àªàª°àª¾àª¤à«, Gaelg, ×¢×ר×ת, हिनà¥à¤¦à¥, Fiji Hindi, Hrvatski, Kreyòl ayisyen, Magyar, ÕÕ¡ÕµÕ¥ÖÕ¥Õ¶, Interlingua, Bahasa Indonesia, Ilokano, Ido, Ãslenska, Italiano, æ¥æ¬èª, Lojban, Basa Jawa, á¥áá áá£áá, Kongo, Kalaallisut, à²à²¨à³à²¨à²¡, íêµì´, ÐÑаÑаÑай-ÐалкÑаÑ, Ripoarisch, Kurdî, Ðоми, Kernewek, ÐÑÑгÑзÑа, Latina, Ladino, Lëtzebuergesch, Limburgs, Lingála, ລາວ, Lietuvių, LatvieÅ¡u, Basa Banyumasan, Malagasy, ÐакедонÑки, മലയാളà´, मराठà¥, Bahasa Melayu, Ù
ازÙرÙÙÛ, Nnapulitano, Nedersaksisch, नà¥à¤ªà¤¾à¤² à¤à¤¾à¤·à¤¾, Nederlands, âªNorsk (
nynorsk)â¬, âªNorsk (bokmÃ¥l)â¬, Nouormand, Diné bizaad, Occitan, ÐÑонаÑ, Papiamentu, Deitsch, Norfuk / Pitkern, Polski, Ù¾ÙجابÛ, Ù¾ÚتÙ, Português, Runa Simi, Rumantsch, Romani, RomânÄ, Ð ÑÑÑкий, СаÑ
а ÑÑла, Sardu, Sicilianu, Scots, Sámegiella, Simple English, SlovenÄina, SlovenÅ¡Äina, СÑпÑки / Srpski, Seeltersk, Svenska, Kiswahili, தமிழà¯, à°¤à±à°²à±à°à±, Тоҷикӣ, à¹à¸à¸¢, Türkmençe, Tagalog, Türkçe, ТаÑаÑÑа/Tatarça, УкÑаÑнÑÑка, اردÙ, Tiếng Viá»t, Volapük, Walon, Winaray, å´è¯, isiXhosa, ××Ö´××ש, Yorùbá, Zeêuws, ä¸æ, Bân-lâm-gú, ç²µèª";
equals(client.testString(stringTest), stringTest);
var specialCharacters = 'quote: \" backslash:' +
@@ -117,20 +118,30 @@
equals(JSON.stringify(nestTestOutput), JSON.stringify(nestTestInput))
});
-
+
test("Map", function() {
var mapTestInput = {7:77, 8:88, 9:99};
var mapTestOutput = client.testMap(mapTestInput)
-
+
for (var key in mapTestOutput) {
equals(mapTestOutput[key], mapTestInput[key]);
}
+ });
- //HACK: content is OK but Java server returns JSON items in the wrong order {"8":88,"9":99,"7":77}
- //equals(JSON.stringify(mapTestOutput), JSON.stringify(mapTestInput))
+ test("StringMap", function() {
+ var mapTestInput = {
+ "a":"123", "a b":"with spaces ", "same":"same", "0":"numeric key",
+ "longValue":stringTest, stringTest:"long key"
+ };
+
+ var mapTestOutput = client.testStringMap(mapTestInput)
+
+ for (var key in mapTestOutput) {
+ equals(mapTestOutput[key], mapTestInput[key]);
+ }
});
-
+
test("Set", function() {
var setTestInput = new Array(1,2,3)
ok(client.testSet(setTestInput), setTestInput);
Modified: thrift/trunk/lib/js/thrift.js
URL: http://svn.apache.org/viewvc/thrift/trunk/lib/js/thrift.js?rev=1135763&r1=1135762&r2=1135763&view=diff
==============================================================================
--- thrift/trunk/lib/js/thrift.js (original)
+++ thrift/trunk/lib/js/thrift.js Tue Jun 14 19:38:27 2011
@@ -460,7 +460,8 @@ Thrift.Protocol.prototype = {
map = ',' + map;
}
- map = '"' + k + '":' + v + map;
+ if ( ! isNaN(k)) { k = '"' + k + '"'; } //json "keys" need to be strings
+ map = k + ':' + v + map;
}
map = '{' + map;
Modified: thrift/trunk/test/ThriftTest.thrift
URL: http://svn.apache.org/viewvc/thrift/trunk/test/ThriftTest.thrift?rev=1135763&r1=1135762&r2=1135763&view=diff
==============================================================================
--- thrift/trunk/test/ThriftTest.thrift (original)
+++ thrift/trunk/test/ThriftTest.thrift Tue Jun 14 19:38:27 2011
@@ -129,6 +129,7 @@ service ThriftTest
Xtruct testStruct(1: Xtruct thing),
Xtruct2 testNest(1: Xtruct2 thing),
map<i32,i32> testMap(1: map<i32,i32> thing),
+ map<string,string> testStringMap(1: map<string,string> thing),
set<i32> testSet(1: set<i32> thing),
list<i32> testList(1: list<i32> thing),
Numberz testEnum(1: Numberz thing),