Commit | Line | Data |
---|---|---|
5e561bc7 TZ |
1 | ;;; url-util-tests.el --- Test suite for url-util. |
2 | ||
ba318903 | 3 | ;; Copyright (C) 2012-2014 Free Software Foundation, Inc. |
5e561bc7 TZ |
4 | |
5 | ;; Author: Teodor Zlatanov <tzz@lifelogs.com> | |
6 | ;; Keywords: data | |
7 | ||
8 | ;; This file is part of GNU Emacs. | |
9 | ||
10 | ;; GNU Emacs is free software: you can redistribute it and/or modify | |
11 | ;; it under the terms of the GNU General Public License as published by | |
12 | ;; the Free Software Foundation, either version 3 of the License, or | |
13 | ;; (at your option) any later version. | |
14 | ||
15 | ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | ;; GNU General Public License for more details. | |
19 | ||
20 | ;; You should have received a copy of the GNU General Public License | |
21 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | |
22 | ||
23 | ;;; Code: | |
24 | ||
25 | (require 'ert) | |
26 | (require 'url-util) | |
27 | ||
28 | (ert-deftest url-util-tests () | |
29 | (let ((tests | |
30 | '(("key1=val1&key2=val2&key3=val1&key3=val2&key4&key5" | |
31 | ((key1 val1) (key2 "val2") (key3 val1 val2) (key4) (key5 ""))) | |
32 | ("key1=val1;key2=val2;key3=val1;key3=val2;key4;key5" | |
33 | ((key1 "val1") (key2 val2) (key3 val1 val2) ("key4") (key5 "")) t) | |
34 | ("key1=val1;key2=val2;key3=val1;key3=val2;key4=;key5=" | |
35 | ((key1 val1) (key2 val2) ("key3" val1 val2) (key4) (key5 "")) t t))) | |
36 | test) | |
37 | (while tests | |
38 | (setq test (car tests) | |
39 | tests (cdr tests)) | |
40 | (should (equal (apply 'url-build-query-string (cdr test)) (car test))))) | |
41 | (should (equal (url-parse-query-string | |
42 | "key1=val1&key2=val2&key3=val1&key3=val2&key4=&key5") | |
43 | '(("key5" "") | |
44 | ("key4" "") | |
45 | ("key3" "val2" "val1") | |
46 | ("key2" "val2") | |
47 | ("key1" "val1"))))) | |
48 | ||
49 | (provide 'url-util-tests) | |
50 | ||
51 | ;;; url-util-tests.el ends here |