Simple email application for Android. Original source code: https://framagit.org/dystopia-project/simple-email
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

439 lines
14 KiB

  1. {
  2. "3.2.1 Variable Expansion" :
  3. {
  4. "variables": {
  5. "count" : ["one", "two", "three"],
  6. "dom" : ["example", "com"],
  7. "dub" : "me/too",
  8. "hello" : "Hello World!",
  9. "half" : "50%",
  10. "var" : "value",
  11. "who" : "fred",
  12. "base" : "http://example.com/home/",
  13. "path" : "/foo/bar",
  14. "list" : ["red", "green", "blue"],
  15. "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
  16. "v" : "6",
  17. "x" : "1024",
  18. "y" : "768",
  19. "empty" : "",
  20. "empty_keys" : [],
  21. "undef" : null
  22. },
  23. "testcases" : [
  24. ["{count}", "one,two,three"],
  25. ["{count*}", "one,two,three"],
  26. ["{/count}", "/one,two,three"],
  27. ["{/count*}", "/one/two/three"],
  28. ["{;count}", ";count=one,two,three"],
  29. ["{;count*}", ";count=one;count=two;count=three"],
  30. ["{?count}", "?count=one,two,three"],
  31. ["{?count*}", "?count=one&count=two&count=three"],
  32. ["{&count*}", "&count=one&count=two&count=three"]
  33. ]
  34. },
  35. "3.2.2 Simple String Expansion" :
  36. {
  37. "variables": {
  38. "count" : ["one", "two", "three"],
  39. "dom" : ["example", "com"],
  40. "dub" : "me/too",
  41. "hello" : "Hello World!",
  42. "half" : "50%",
  43. "var" : "value",
  44. "who" : "fred",
  45. "base" : "http://example.com/home/",
  46. "path" : "/foo/bar",
  47. "list" : ["red", "green", "blue"],
  48. "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
  49. "v" : "6",
  50. "x" : "1024",
  51. "y" : "768",
  52. "empty" : "",
  53. "empty_keys" : [],
  54. "undef" : null
  55. },
  56. "testcases" : [
  57. ["{var}", "value"],
  58. ["{hello}", "Hello%20World%21"],
  59. ["{half}", "50%25"],
  60. ["O{empty}X", "OX"],
  61. ["O{undef}X", "OX"],
  62. ["{x,y}", "1024,768"],
  63. ["{x,hello,y}", "1024,Hello%20World%21,768"],
  64. ["?{x,empty}", "?1024,"],
  65. ["?{x,undef}", "?1024"],
  66. ["?{undef,y}", "?768"],
  67. ["{var:3}", "val"],
  68. ["{var:30}", "value"],
  69. ["{list}", "red,green,blue"],
  70. ["{list*}", "red,green,blue"],
  71. ["{keys}", [
  72. "comma,%2C,dot,.,semi,%3B",
  73. "comma,%2C,semi,%3B,dot,.",
  74. "dot,.,comma,%2C,semi,%3B",
  75. "dot,.,semi,%3B,comma,%2C",
  76. "semi,%3B,comma,%2C,dot,.",
  77. "semi,%3B,dot,.,comma,%2C"
  78. ]],
  79. ["{keys*}", [
  80. "comma=%2C,dot=.,semi=%3B",
  81. "comma=%2C,semi=%3B,dot=.",
  82. "dot=.,comma=%2C,semi=%3B",
  83. "dot=.,semi=%3B,comma=%2C",
  84. "semi=%3B,comma=%2C,dot=.",
  85. "semi=%3B,dot=.,comma=%2C"
  86. ]]
  87. ]
  88. },
  89. "3.2.3 Reserved Expansion" :
  90. {
  91. "variables": {
  92. "count" : ["one", "two", "three"],
  93. "dom" : ["example", "com"],
  94. "dub" : "me/too",
  95. "hello" : "Hello World!",
  96. "half" : "50%",
  97. "var" : "value",
  98. "who" : "fred",
  99. "base" : "http://example.com/home/",
  100. "path" : "/foo/bar",
  101. "list" : ["red", "green", "blue"],
  102. "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
  103. "v" : "6",
  104. "x" : "1024",
  105. "y" : "768",
  106. "empty" : "",
  107. "empty_keys" : [],
  108. "undef" : null
  109. },
  110. "testcases" : [
  111. ["{+var}", "value"],
  112. ["{/var,empty}", "/value/"],
  113. ["{/var,undef}", "/value"],
  114. ["{+hello}", "Hello%20World!"],
  115. ["{+half}", "50%25"],
  116. ["{base}index", "http%3A%2F%2Fexample.com%2Fhome%2Findex"],
  117. ["{+base}index", "http://example.com/home/index"],
  118. ["O{+empty}X", "OX"],
  119. ["O{+undef}X", "OX"],
  120. ["{+path}/here", "/foo/bar/here"],
  121. ["{+path:6}/here", "/foo/b/here"],
  122. ["here?ref={+path}", "here?ref=/foo/bar"],
  123. ["up{+path}{var}/here", "up/foo/barvalue/here"],
  124. ["{+x,hello,y}", "1024,Hello%20World!,768"],
  125. ["{+path,x}/here", "/foo/bar,1024/here"],
  126. ["{+list}", "red,green,blue"],
  127. ["{+list*}", "red,green,blue"],
  128. ["{+keys}", [
  129. "comma,,,dot,.,semi,;",
  130. "comma,,,semi,;,dot,.",
  131. "dot,.,comma,,,semi,;",
  132. "dot,.,semi,;,comma,,",
  133. "semi,;,comma,,,dot,.",
  134. "semi,;,dot,.,comma,,"
  135. ]],
  136. ["{+keys*}", [
  137. "comma=,,dot=.,semi=;",
  138. "comma=,,semi=;,dot=.",
  139. "dot=.,comma=,,semi=;",
  140. "dot=.,semi=;,comma=,",
  141. "semi=;,comma=,,dot=.",
  142. "semi=;,dot=.,comma=,"
  143. ]]
  144. ]
  145. },
  146. "3.2.4 Fragment Expansion" :
  147. {
  148. "variables": {
  149. "count" : ["one", "two", "three"],
  150. "dom" : ["example", "com"],
  151. "dub" : "me/too",
  152. "hello" : "Hello World!",
  153. "half" : "50%",
  154. "var" : "value",
  155. "who" : "fred",
  156. "base" : "http://example.com/home/",
  157. "path" : "/foo/bar",
  158. "list" : ["red", "green", "blue"],
  159. "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
  160. "v" : "6",
  161. "x" : "1024",
  162. "y" : "768",
  163. "empty" : "",
  164. "empty_keys" : [],
  165. "undef" : null
  166. },
  167. "testcases" : [
  168. ["{#var}", "#value"],
  169. ["{#hello}", "#Hello%20World!"],
  170. ["{#half}", "#50%25"],
  171. ["foo{#empty}", "foo#"],
  172. ["foo{#undef}", "foo"],
  173. ["{#x,hello,y}", "#1024,Hello%20World!,768"],
  174. ["{#path,x}/here", "#/foo/bar,1024/here"],
  175. ["{#path:6}/here", "#/foo/b/here"],
  176. ["{#list}", "#red,green,blue"],
  177. ["{#list*}", "#red,green,blue"],
  178. ["{#keys}", [
  179. "#comma,,,dot,.,semi,;",
  180. "#comma,,,semi,;,dot,.",
  181. "#dot,.,comma,,,semi,;",
  182. "#dot,.,semi,;,comma,,",
  183. "#semi,;,comma,,,dot,.",
  184. "#semi,;,dot,.,comma,,"
  185. ]]
  186. ]
  187. },
  188. "3.2.5 Label Expansion with Dot-Prefix" :
  189. {
  190. "variables": {
  191. "count" : ["one", "two", "three"],
  192. "dom" : ["example", "com"],
  193. "dub" : "me/too",
  194. "hello" : "Hello World!",
  195. "half" : "50%",
  196. "var" : "value",
  197. "who" : "fred",
  198. "base" : "http://example.com/home/",
  199. "path" : "/foo/bar",
  200. "list" : ["red", "green", "blue"],
  201. "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
  202. "v" : "6",
  203. "x" : "1024",
  204. "y" : "768",
  205. "empty" : "",
  206. "empty_keys" : [],
  207. "undef" : null
  208. },
  209. "testcases" : [
  210. ["{.who}", ".fred"],
  211. ["{.who,who}", ".fred.fred"],
  212. ["{.half,who}", ".50%25.fred"],
  213. ["www{.dom*}", "www.example.com"],
  214. ["X{.var}", "X.value"],
  215. ["X{.var:3}", "X.val"],
  216. ["X{.empty}", "X."],
  217. ["X{.undef}", "X"],
  218. ["X{.list}", "X.red,green,blue"],
  219. ["X{.list*}", "X.red.green.blue"],
  220. ["{#keys}", [
  221. "#comma,,,dot,.,semi,;",
  222. "#comma,,,semi,;,dot,.",
  223. "#dot,.,comma,,,semi,;",
  224. "#dot,.,semi,;,comma,,",
  225. "#semi,;,comma,,,dot,.",
  226. "#semi,;,dot,.,comma,,"
  227. ]],
  228. ["{#keys*}", [
  229. "#comma=,,dot=.,semi=;",
  230. "#comma=,,semi=;,dot=.",
  231. "#dot=.,comma=,,semi=;",
  232. "#dot=.,semi=;,comma=,",
  233. "#semi=;,comma=,,dot=.",
  234. "#semi=;,dot=.,comma=,"
  235. ]],
  236. ["X{.empty_keys}", "X"],
  237. ["X{.empty_keys*}", "X"]
  238. ]
  239. },
  240. "3.2.6 Path Segment Expansion" :
  241. {
  242. "variables": {
  243. "count" : ["one", "two", "three"],
  244. "dom" : ["example", "com"],
  245. "dub" : "me/too",
  246. "hello" : "Hello World!",
  247. "half" : "50%",
  248. "var" : "value",
  249. "who" : "fred",
  250. "base" : "http://example.com/home/",
  251. "path" : "/foo/bar",
  252. "list" : ["red", "green", "blue"],
  253. "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
  254. "v" : "6",
  255. "x" : "1024",
  256. "y" : "768",
  257. "empty" : "",
  258. "empty_keys" : [],
  259. "undef" : null
  260. },
  261. "testcases" : [
  262. ["{/who}", "/fred"],
  263. ["{/who,who}", "/fred/fred"],
  264. ["{/half,who}", "/50%25/fred"],
  265. ["{/who,dub}", "/fred/me%2Ftoo"],
  266. ["{/var}", "/value"],
  267. ["{/var,empty}", "/value/"],
  268. ["{/var,undef}", "/value"],
  269. ["{/var,x}/here", "/value/1024/here"],
  270. ["{/var:1,var}", "/v/value"],
  271. ["{/list}", "/red,green,blue"],
  272. ["{/list*}", "/red/green/blue"],
  273. ["{/list*,path:4}", "/red/green/blue/%2Ffoo"],
  274. ["{/keys}", [
  275. "/comma,%2C,dot,.,semi,%3B",
  276. "/comma,%2C,semi,%3B,dot,.",
  277. "/dot,.,comma,%2C,semi,%3B",
  278. "/dot,.,semi,%3B,comma,%2C",
  279. "/semi,%3B,comma,%2C,dot,.",
  280. "/semi,%3B,dot,.,comma,%2C"
  281. ]],
  282. ["{/keys*}", [
  283. "/comma=%2C/dot=./semi=%3B",
  284. "/comma=%2C/semi=%3B/dot=.",
  285. "/dot=./comma=%2C/semi=%3B",
  286. "/dot=./semi=%3B/comma=%2C",
  287. "/semi=%3B/comma=%2C/dot=.",
  288. "/semi=%3B/dot=./comma=%2C"
  289. ]]
  290. ]
  291. },
  292. "3.2.7 Path-Style Parameter Expansion" :
  293. {
  294. "variables": {
  295. "count" : ["one", "two", "three"],
  296. "dom" : ["example", "com"],
  297. "dub" : "me/too",
  298. "hello" : "Hello World!",
  299. "half" : "50%",
  300. "var" : "value",
  301. "who" : "fred",
  302. "base" : "http://example.com/home/",
  303. "path" : "/foo/bar",
  304. "list" : ["red", "green", "blue"],
  305. "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
  306. "v" : "6",
  307. "x" : "1024",
  308. "y" : "768",
  309. "empty" : "",
  310. "empty_keys" : [],
  311. "undef" : null
  312. },
  313. "testcases" : [
  314. ["{;who}", ";who=fred"],
  315. ["{;half}", ";half=50%25"],
  316. ["{;empty}", ";empty"],
  317. ["{;hello:5}", ";hello=Hello"],
  318. ["{;v,empty,who}", ";v=6;empty;who=fred"],
  319. ["{;v,bar,who}", ";v=6;who=fred"],
  320. ["{;x,y}", ";x=1024;y=768"],
  321. ["{;x,y,empty}", ";x=1024;y=768;empty"],
  322. ["{;x,y,undef}", ";x=1024;y=768"],
  323. ["{;list}", ";list=red,green,blue"],
  324. ["{;list*}", ";list=red;list=green;list=blue"],
  325. ["{;keys}", [
  326. ";keys=comma,%2C,dot,.,semi,%3B",
  327. ";keys=comma,%2C,semi,%3B,dot,.",
  328. ";keys=dot,.,comma,%2C,semi,%3B",
  329. ";keys=dot,.,semi,%3B,comma,%2C",
  330. ";keys=semi,%3B,comma,%2C,dot,.",
  331. ";keys=semi,%3B,dot,.,comma,%2C"
  332. ]],
  333. ["{;keys*}", [
  334. ";comma=%2C;dot=.;semi=%3B",
  335. ";comma=%2C;semi=%3B;dot=.",
  336. ";dot=.;comma=%2C;semi=%3B",
  337. ";dot=.;semi=%3B;comma=%2C",
  338. ";semi=%3B;comma=%2C;dot=.",
  339. ";semi=%3B;dot=.;comma=%2C"
  340. ]]
  341. ]
  342. },
  343. "3.2.8 Form-Style Query Expansion" :
  344. {
  345. "variables": {
  346. "count" : ["one", "two", "three"],
  347. "dom" : ["example", "com"],
  348. "dub" : "me/too",
  349. "hello" : "Hello World!",
  350. "half" : "50%",
  351. "var" : "value",
  352. "who" : "fred",
  353. "base" : "http://example.com/home/",
  354. "path" : "/foo/bar",
  355. "list" : ["red", "green", "blue"],
  356. "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
  357. "v" : "6",
  358. "x" : "1024",
  359. "y" : "768",
  360. "empty" : "",
  361. "empty_keys" : [],
  362. "undef" : null
  363. },
  364. "testcases" : [
  365. ["{?who}", "?who=fred"],
  366. ["{?half}", "?half=50%25"],
  367. ["{?x,y}", "?x=1024&y=768"],
  368. ["{?x,y,empty}", "?x=1024&y=768&empty="],
  369. ["{?x,y,undef}", "?x=1024&y=768"],
  370. ["{?var:3}", "?var=val"],
  371. ["{?list}", "?list=red,green,blue"],
  372. ["{?list*}", "?list=red&list=green&list=blue"],
  373. ["{?keys}", [
  374. "?keys=comma,%2C,dot,.,semi,%3B",
  375. "?keys=comma,%2C,semi,%3B,dot,.",
  376. "?keys=dot,.,comma,%2C,semi,%3B",
  377. "?keys=dot,.,semi,%3B,comma,%2C",
  378. "?keys=semi,%3B,comma,%2C,dot,.",
  379. "?keys=semi,%3B,dot,.,comma,%2C"
  380. ]],
  381. ["{?keys*}", [
  382. "?comma=%2C&dot=.&semi=%3B",
  383. "?comma=%2C&semi=%3B&dot=.",
  384. "?dot=.&comma=%2C&semi=%3B",
  385. "?dot=.&semi=%3B&comma=%2C",
  386. "?semi=%3B&comma=%2C&dot=.",
  387. "?semi=%3B&dot=.&comma=%2C"
  388. ]]
  389. ]
  390. },
  391. "3.2.9 Form-Style Query Continuation" :
  392. {
  393. "variables": {
  394. "count" : ["one", "two", "three"],
  395. "dom" : ["example", "com"],
  396. "dub" : "me/too",
  397. "hello" : "Hello World!",
  398. "half" : "50%",
  399. "var" : "value",
  400. "who" : "fred",
  401. "base" : "http://example.com/home/",
  402. "path" : "/foo/bar",
  403. "list" : ["red", "green", "blue"],
  404. "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
  405. "v" : "6",
  406. "x" : "1024",
  407. "y" : "768",
  408. "empty" : "",
  409. "empty_keys" : [],
  410. "undef" : null
  411. },
  412. "testcases" : [
  413. ["{&who}", "&who=fred"],
  414. ["{&half}", "&half=50%25"],
  415. ["?fixed=yes{&x}", "?fixed=yes&x=1024"],
  416. ["{&var:3}", "&var=val"],
  417. ["{&x,y,empty}", "&x=1024&y=768&empty="],
  418. ["{&x,y,undef}", "&x=1024&y=768"],
  419. ["{&list}", "&list=red,green,blue"],
  420. ["{&list*}", "&list=red&list=green&list=blue"],
  421. ["{&keys}", [
  422. "&keys=comma,%2C,dot,.,semi,%3B",
  423. "&keys=comma,%2C,semi,%3B,dot,.",
  424. "&keys=dot,.,comma,%2C,semi,%3B",
  425. "&keys=dot,.,semi,%3B,comma,%2C",
  426. "&keys=semi,%3B,comma,%2C,dot,.",
  427. "&keys=semi,%3B,dot,.,comma,%2C"
  428. ]],
  429. ["{&keys*}", [
  430. "&comma=%2C&dot=.&semi=%3B",
  431. "&comma=%2C&semi=%3B&dot=.",
  432. "&dot=.&comma=%2C&semi=%3B",
  433. "&dot=.&semi=%3B&comma=%2C",
  434. "&semi=%3B&comma=%2C&dot=.",
  435. "&semi=%3B&dot=.&comma=%2C"
  436. ]]
  437. ]
  438. }
  439. }