summaryrefslogtreecommitdiff
path: root/tests/jid.cpp
diff options
context:
space:
mode:
authorVasudev Kamath <vasudev@copyninja.info>2016-10-23 21:09:40 +0530
committerVasudev Kamath <vasudev@copyninja.info>2016-10-23 21:09:40 +0530
commiteda4b75b1cff83336e87da90efca9fd6b4ced2c7 (patch)
tree491317ce50b5d19bc434ccc4b448d1bc70520177 /tests/jid.cpp
parent716c40e4ec45f8d538695225f4f06d541d959084 (diff)
parent0f14fe83ef53b08bd8fa09670c82f4996c329bdc (diff)
downloadbiboumi-eda4b75b1cff83336e87da90efca9fd6b4ced2c7.tar.gz
biboumi-eda4b75b1cff83336e87da90efca9fd6b4ced2c7.tar.bz2
biboumi-eda4b75b1cff83336e87da90efca9fd6b4ced2c7.tar.xz
biboumi-eda4b75b1cff83336e87da90efca9fd6b4ced2c7.zip
New upstream version 3.0upstream/3.0
Diffstat (limited to 'tests/jid.cpp')
-rw-r--r--tests/jid.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/jid.cpp b/tests/jid.cpp
new file mode 100644
index 0000000..9015afd
--- /dev/null
+++ b/tests/jid.cpp
@@ -0,0 +1,39 @@
+#include "catch.hpp"
+
+#include <xmpp/jid.hpp>
+#include <louloulibs.h>
+
+TEST_CASE("Jid")
+{
+ Jid jid1("♥@ツ.coucou/coucou@coucou/coucou");
+ CHECK(jid1.local == "♥");
+ CHECK(jid1.domain == "ツ.coucou");
+ CHECK(jid1.resource == "coucou@coucou/coucou");
+
+ // Domain and resource
+ Jid jid2("ツ.coucou/coucou@coucou/coucou");
+ CHECK(jid2.local == "");
+ CHECK(jid2.domain == "ツ.coucou");
+ CHECK(jid2.resource == "coucou@coucou/coucou");
+
+ // Jidprep
+ const std::string badjid("~zigougou™@EpiK-7D9D1FDE.poez.io/Boujour/coucou/slt™");
+ const std::string correctjid = jidprep(badjid);
+#ifdef LIBIDN_FOUND
+ CHECK(correctjid == "~zigougoutm@epik-7d9d1fde.poez.io/Boujour/coucou/sltTM");
+ // Check that the cache does not break things when we prep the same string
+ // multiple times
+ CHECK(jidprep(badjid) == "~zigougoutm@epik-7d9d1fde.poez.io/Boujour/coucou/sltTM");
+ CHECK(jidprep(badjid) == "~zigougoutm@epik-7d9d1fde.poez.io/Boujour/coucou/sltTM");
+
+ const std::string badjid2("Zigougou@poez.io");
+ const std::string correctjid2 = jidprep(badjid2);
+ CHECK(correctjid2 == "zigougou@poez.io");
+
+ const std::string crappy("~Bisous@7ea8beb1:c5fd2849:da9a048e:ip");
+ const std::string fixed_crappy = jidprep(crappy);
+ CHECK(fixed_crappy == "~bisous@7ea8beb1-c5fd2849-da9a048e-ip");
+#else // Without libidn, jidprep always returns an empty string
+ CHECK(jidprep(badjid) == "");
+#endif
+}