# vi:filetype= use OpenResty::Config; my $reason; BEGIN { OpenResty::Config->init; if ($OpenResty::Config{'backend.type'} eq 'PgMocked' || $OpenResty::Config{'backend.recording'}) { $reason = 'Skipped in PgMocked or recording mode here.'; } #undef $reason; } use t::OpenResty $reason ? (skip_all => $reason) : (); plan tests => 3 * blocks(); run_tests; __DATA__ === TEST 1: UTF-8 --- charset: UTF-8 --- request DELETE /=/model?_user=$TestAccount&_password=$TestPass&_use_cookie=1 --- response {"success":1} === TEST 2: GBK --- charset: GBK --- request DELETE /=/model?_charset=GBK --- response {"success":1} === TEST 3: Create a model in GBK --- charset: GBK --- request POST /=/model/Foo?_charset=GBK { "description": "你好么?", "columns": [ {"name":"bar","type":"text","label":"嘿嘿"} ] } --- response {"success":1} === TEST 4: Check the data in GB2312 --- charset: GB2312 --- request GET /=/model/Foo?_charset=GB2312 --- response { "columns":[ {"name":"id","label":"ID","type":"serial"}, {"unique":false,"not_null":false,"name":"bar","default":null,"label":"嘿嘿","type":"text"} ], "name":"Foo", "description":"你好么?" } === TEST 5: Check the data in utf8 --- charset: utf8 --- request GET /=/model/Foo?_charset=utf8 --- response {"columns":[ {"name":"id","label":"ID","type":"serial"}, {"name":"bar","default":null,"label":"嘿嘿","type":"text","unique":false,"not_null":false} ], "name":"Foo","description":"你好么?"} === TEST 6: Check the data in big5 --- charset: big5 --- request GET /=/model/Foo?_charset=big5 --- response { "columns":[ {"name":"id","label":"ID","type":"serial"}, {"unique":false,"not_null":false,"name":"bar","default":null,"label":"嘿嘿","type":"text"} ], "name":"Foo", "description":"你好么?" } === TEST 7: Check the data in latin1 --- charset: latin-1 --- request GET /=/model/Foo/bar?_charset=latin-1 --- response {"name":"bar","default":null,"label":"??","type":"text","unique":false,"not_null":false} === TEST 8: Insert records in Big5 --- charset: Big5 --- request POST /=/model/Foo/~/~?_charset=Big5 { "bar": "廣告服務" } --- response {"success":1,"rows_affected":1,"last_row":"/=/model/Foo/id/1"} === TEST 9: Check the record --- request GET /=/model/Foo/~/~ --- response [{"bar":"廣告服務","id":"1"}] === TEST 10: Check the record (in YAML) --- request GET /=/model/Foo/~/~.yml --- format: YAML --- response --- - bar: 廣告服務 id: 1 === TEST 11: Insert records in Big5 --- charset: Big5 --- request GET /=/model/Foo/~/~?_charset=Big5 --- response [{"bar":"廣告服務","id":"1"}] === TEST 12: Create a model in UTF-8 --- charset: UTF-8 --- request POST /=/model/Utf8?_charset=guessing { "description": "文字编码测试utf8", "columns": [{"name":"bar","type":"text", "label":"我们的open api"}] } --- response {"success":1} === TEST 13: Check the data in UTF-8 --- charset: UTF-8 --- request GET /=/model/Utf8?_charset=UTF-8 --- response { "columns":[ {"name":"id","label":"ID","type":"serial"}, {"name":"bar","default":null,"label":"我们的open api","type":"text","unique":false,"not_null":false} ], "name":"Utf8", "description":"文字编码测试utf8" } === TEST 14: Create a model in GBK --- charset: GBK --- request POST /=/model/Gbk?_charset=guessing { "description": "文字编码测试GBK 张皛珏 万珣新", "columns": [{"name":"bar","type":"text", "label":"我们的open api"}] } --- response {"success":1} === TEST 15: Check the data in UTF-8 --- charset: UTF-8 --- request GET /=/model/Gbk?_charset=UTF-8 --- response { "columns":[ {"name":"id","label":"ID","type":"serial"}, {"name":"bar","default":null,"label":"我们的open api","type":"text","unique":false,"not_null":false} ], "name":"Gbk", "description":"文字编码测试GBK 张皛珏 万珣新" } === TEST 16: Create a model in GB2312 --- charset: GB2312 --- request POST /=/model/Gb2312?_charset=guessing { "description": "文字编码测试GB2312", "columns": [{"name":"bar","type":"text","label":"我们的open api"}] } --- response {"success":1} === TEST 17: Check the data in UTF-8 --- charset: UTF-8 --- request GET /=/model/Gb2312?_charset=UTF-8 --- response { "columns":[ {"name":"id","label":"ID","type":"serial"}, {"name":"bar","default":null,"label":"我们的open api","type":"text","unique":false,"not_null":false} ], "name":"Gb2312", "description":"文字编码测试GB2312" } === TEST 18: Create a model in big5 --- charset: Big5 --- request POST /=/model/Big5?_charset=guessing { "description": "文字編碼測試big5", "columns": [{"name":"bar","type":"text","label":"我們的open api"}] } --- response {"success":1} === TEST 19: Check the data in UTF-8 --- charset: UTF-8 --- request GET /=/model/Big5?_charset=UTF-8 --- response { "columns":[ {"name":"id","label":"ID","type":"serial"}, {"name":"bar","default":null,"label":"我們的open api","type":"text","unique":false,"not_null":false} ], "name":"Big5", "description":"文字編碼測試big5" } === TEST 20: POST utf-8 chars --- charset: UTF-8 --- request POST /=/model/Big5/~/~ {"bar":"你好么?"} --- response {"success":1,"rows_affected":1,"last_row":"/=/model/Big5/id/1"} === TEST 21: Get the row --- request GET /=/model/Big5/id/1 --- response [{"bar":"你好么?","id":"1"}] === TEST 22: logout --- request GET /=/logout --- response {"success":1}