forked from openSUSE/snapper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdbus-escape.cc
37 lines (23 loc) · 964 Bytes
/
dbus-escape.cc
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
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE dbus_escape
#include <boost/test/unit_test.hpp>
#include <dbus/DBusMessage.h>
using namespace DBus;
BOOST_AUTO_TEST_CASE(escape)
{
BOOST_CHECK_EQUAL(Hoho::escape("\\"), "\\\\");
BOOST_CHECK_EQUAL(Hoho::escape("ä"), "\\xc3\\xa4");
BOOST_CHECK_EQUAL(Hoho::escape("0ä0"), "0\\xc3\\xa40");
BOOST_CHECK_EQUAL(Hoho::escape("\xff"), "\\xff");
}
BOOST_AUTO_TEST_CASE(unescape)
{
BOOST_CHECK_EQUAL(Hihi::unescape("\\\\"), "\\");
BOOST_CHECK_EQUAL(Hihi::unescape("\\xc3\\xa4"), "ä");
BOOST_CHECK_EQUAL(Hihi::unescape("0\\xc3\\xa40"), "0ä0");
BOOST_CHECK_EQUAL(Hihi::unescape("\\xff"), "\xff");
BOOST_CHECK_THROW(Hihi::unescape("\\"), MarshallingException);
BOOST_CHECK_THROW(Hihi::unescape("\\x"), MarshallingException);
BOOST_CHECK_THROW(Hihi::unescape("\\x0"), MarshallingException);
BOOST_CHECK_THROW(Hihi::unescape("\\x0?"), MarshallingException);
}