File: test_uri_util.py

package info (click to toggle)
gajim 2.4.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 17,584 kB
  • sloc: python: 80,560; sh: 591; xml: 67; makefile: 6
file content (61 lines) | stat: -rw-r--r-- 2,135 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# This file is part of Gajim.
#
# SPDX-License-Identifier: GPL-3.0-or-later

import unittest

from gajim.common.util.uri import DataUri
from gajim.common.util.uri import XmppIri


class TestUriUtil(unittest.TestCase):
    def test_parsing_xmpp_iri(self) -> None:
        xiri = XmppIri.from_string(
            r"xmpp:nasty!%23$%25()*+,-.;=%3F%5B%5C%5D%5E_%60%7B%7C%7D~n@example.com"
        )
        self.assertEqual(str(xiri.jid), r"nasty!#$%()*+,-.;=?[\]^_`{|}~n@example.com")

        xiri = XmppIri.from_string(
            "xmpp:example-node@example.com?message;subject=Hello%20World"
        )
        self.assertEqual(str(xiri.jid), "example-node@example.com")
        self.assertEqual(xiri.action, "message")
        self.assertEqual(xiri.params, {"subject": "Hello World"})

        xiri = XmppIri.from_string(r"xmpp:aD%C3%BCrst@asd.at")
        self.assertEqual(str(xiri.jid), "adürst@asd.at")

    def test_parse_data_uri(self) -> None:
        test_uris = {
            "data:,A%20brief%20note": DataUri(
                scheme="data",
                uri="data:,A%20brief%20note",
                media_type="text/plain",
                parameters={},
                is_base64=False,
                data="A%20brief%20note",
            ),
            "data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywA": DataUri(
                scheme="data",
                uri="data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywA",
                media_type="image/gif",
                parameters={},
                is_base64=True,
                data="R0lGODdhMAAwAPAAAAAAAP///ywA",
            ),
            "data:text/plain;charset=iso-8859-7,%be%fg%be": DataUri(
                scheme="data",
                uri="data:text/plain;charset=iso-8859-7,%be%fg%be",
                media_type="text/plain",
                parameters={"charset": "iso-8859-7"},
                is_base64=False,
                data="%be%fg%be",
            ),
        }

        for uri, expected_res in test_uris.items():
            self.assertEqual(DataUri.from_string(uri), expected_res)


if __name__ == "__main__":
    unittest.main()