qulogic/pidgin
Clone
Summary
Browse
Changes
Graph
Merge d58bb79313d0 to convert .hgignore
next.minor
2012-06-13, Hg Conversion
dccfc128a58b
Merge d58bb79313d0 to convert .hgignore
#include
<string.h>
#include
"tests.h"
#include
"../protocols/yahoo/libymsg.h"
static
void
setup_codes_to_html
(
void
)
{
yahoo_init_colorht
();
}
static
void
teardown_codes_to_html
(
void
)
{
yahoo_dest_colorht
();
}
START_TEST
(
test_codes_to_html
)
{
assert_string_equal_free
(
""
,
yahoo_codes_to_html
(
""
));
assert_string_equal_free
(
""
,
yahoo_codes_to_html
(
"
\x1B
[12345m"
));
assert_string_equal_free
(
"plain"
,
yahoo_codes_to_html
(
"plain"
));
assert_string_equal_free
(
"unknown ansi code"
,
yahoo_codes_to_html
(
"unknown
\x1B
[12345m ansi code"
));
assert_string_equal_free
(
"plain <peanut>"
,
yahoo_codes_to_html
(
"plain <peanut>"
));
assert_string_equal_free
(
"plain <peanut"
,
yahoo_codes_to_html
(
"plain <peanut"
));
assert_string_equal_free
(
"plain> peanut"
,
yahoo_codes_to_html
(
"plain> peanut"
));
assert_string_equal_free
(
"<font face='inva>lid'>test</font>"
,
yahoo_codes_to_html
(
"<font face='inva>lid'>test"
));
assert_string_equal_free
(
"<font face='inva>lid"
,
yahoo_codes_to_html
(
"<font face='inva>lid"
));
/* bold/italic/underline */
assert_string_equal_free
(
"<b>bold</b>"
,
yahoo_codes_to_html
(
"
\x1B
[1mbold"
));
assert_string_equal_free
(
"<i>italic</i>"
,
yahoo_codes_to_html
(
"
\x1B
[2mitalic"
));
assert_string_equal_free
(
"<u>underline</u>"
,
yahoo_codes_to_html
(
"
\x1B
[4munderline"
));
assert_string_equal_free
(
"no markup"
,
yahoo_codes_to_html
(
"no
\x1B
[x4m markup"
));
assert_string_equal_free
(
"<b>bold</b> <i>italic</i> <u>underline</u>"
,
yahoo_codes_to_html
(
"
\x1B
[1mbold
\x1B
[x1m
\x1B
[2mitalic
\x1B
[x2m
\x1B
[4munderline"
));
assert_string_equal_free
(
"<b>bold <i>bolditalic</i></b><i> italic</i>"
,
yahoo_codes_to_html
(
"
\x1B
[1mbold
\x1B
[2mbolditalic
\x1B
[x1m italic"
));
assert_string_equal_free
(
"<b>bold <i>bolditalic</i></b><i> <u>italicunderline</u></i>"
,
yahoo_codes_to_html
(
"
\x1B
[1mbold
\x1B
[2mbolditalic
\x1B
[x1m
\x1B
[4mitalicunderline"
));
assert_string_equal_free
(
"<b>bold <i>bolditalic <u>bolditalicunderline</u></i><u> boldunderline</u></b>"
,
yahoo_codes_to_html
(
"
\x1B
[1mbold
\x1B
[2mbolditalic
\x1B
[4mbolditalicunderline
\x1B
[x2m boldunderline"
));
assert_string_equal_free
(
"<b>bold <i>bolditalic <u>bolditalicunderline</u></i></b><i><u> italicunderline</u></i>"
,
yahoo_codes_to_html
(
"
\x1B
[1mbold
\x1B
[2mbolditalic
\x1B
[4mbolditalicunderline
\x1B
[x1m italicunderline"
));
/* link */
assert_string_equal_free
(
"http://pidgin.im/"
,
yahoo_codes_to_html
(
"
\x1B
[lmhttp://pidgin.im/
\x1B
[xlm"
));
#ifdef USE_CSS_FORMATTING
/* font color */
assert_string_equal_free
(
"<span style='color: #0000FF'>blue</span>"
,
yahoo_codes_to_html
(
"
\x1B
[31mblue"
));
assert_string_equal_free
(
"<span style='color: #70ea15'>custom color</span>"
,
yahoo_codes_to_html
(
"
\x1B
[#70ea15mcustom color"
));
/* font face */
assert_string_equal_free
(
"<font face='Georgia'>test</font>"
,
yahoo_codes_to_html
(
"<font face='Georgia'>test</font>"
));
/* font size */
assert_string_equal_free
(
"<font><span style='font-size: 15pt'>test</span></font>"
,
yahoo_codes_to_html
(
"<font size='15'>test"
));
assert_string_equal_free
(
"<font><span style='font-size: 32pt'>size 32</span></font>"
,
yahoo_codes_to_html
(
"<font size='32'>size 32"
));
/* combinations */
assert_string_equal_free
(
"<font face='Georgia'><span style='font-size: 32pt'>test</span></font>"
,
yahoo_codes_to_html
(
"<font face='Georgia' size='32'>test"
));
assert_string_equal_free
(
"<span style='color: #FF0080'><font><span style='font-size: 15pt'>test</span></font></span>"
,
yahoo_codes_to_html
(
"
\x1B
[35m<font size='15'>test"
));
#else
/* font color */
assert_string_equal_free
(
"<font color='#0000FF'>blue</font>"
,
yahoo_codes_to_html
(
"
\x1B
[31mblue"
));
assert_string_equal_free
(
"<font color='#70ea15'>custom color</font>"
,
yahoo_codes_to_html
(
"
\x1B
[#70ea15mcustom color"
));
assert_string_equal_free
(
"test"
,
yahoo_codes_to_html
(
"<ALT #ff0000,#00ff00,#0000ff>test</ALT>"
));
/* font face */
assert_string_equal_free
(
"<font face='Georgia'>test</font>"
,
yahoo_codes_to_html
(
"<font face='Georgia'>test"
));
/* font size */
assert_string_equal_free
(
"<font size='4' absz='15'>test</font>"
,
yahoo_codes_to_html
(
"<font size='15'>test"
));
assert_string_equal_free
(
"<font size='6' absz='32'>size 32</font>"
,
yahoo_codes_to_html
(
"<font size='32'>size 32"
));
/* combinations */
assert_string_equal_free
(
"<font face='Georgia' size='6' absz='32'>test</font>"
,
yahoo_codes_to_html
(
"<font face='Georgia' size='32'>test"
));
assert_string_equal_free
(
"<font color='#FF0080'><font size='4' absz='15'>test</font></font>"
,
yahoo_codes_to_html
(
"
\x1B
[35m<font size='15'>test"
));
assert_string_equal_free
(
":<"
,
yahoo_codes_to_html
(
"<FADE #ff0000,#00ff00,#0000ff>:<</FADE>"
));
#endif
/* !USE_CSS_FORMATTING */
}
END_TEST
START_TEST
(
test_html_to_codes
)
{
assert_string_equal_free
(
"plain"
,
yahoo_html_to_codes
(
"plain"
));
assert_string_equal_free
(
"plain <peanut>"
,
yahoo_html_to_codes
(
"plain <peanut>"
));
assert_string_equal_free
(
"plain <peanut"
,
yahoo_html_to_codes
(
"plain <peanut"
));
assert_string_equal_free
(
"plain> peanut"
,
yahoo_html_to_codes
(
"plain> peanut"
));
assert_string_equal_free
(
"plain >"
,
yahoo_html_to_codes
(
"plain >"
));
assert_string_equal_free
(
"plain > "
,
yahoo_html_to_codes
(
"plain > "
));
assert_string_equal_free
(
"plain <"
,
yahoo_html_to_codes
(
"plain <"
));
assert_string_equal_free
(
"plain < "
,
yahoo_html_to_codes
(
"plain < "
));
assert_string_equal_free
(
"plain <"
,
yahoo_html_to_codes
(
"plain <"
));
assert_string_equal_free
(
"plain &"
,
yahoo_html_to_codes
(
"plain &"
));
/* bold/italic/underline */
assert_string_equal_free
(
"
\x1B
[1mbold
\x1B
[x1m"
,
yahoo_html_to_codes
(
"<b>bold</b>"
));
assert_string_equal_free
(
"
\x1B
[2mitalic
\x1B
[x2m"
,
yahoo_html_to_codes
(
"<i>italic</i>"
));
assert_string_equal_free
(
"
\x1B
[4munderline
\x1B
[x4m"
,
yahoo_html_to_codes
(
"<u>underline</u>"
));
assert_string_equal_free
(
"no markup"
,
yahoo_html_to_codes
(
"no</u> markup"
));
assert_string_equal_free
(
"
\x1B
[1mbold
\x1B
[x1m
\x1B
[2mitalic
\x1B
[x2m
\x1B
[4munderline
\x1B
[x4m"
,
yahoo_html_to_codes
(
"<b>bold</b> <i>italic</i> <u>underline</u>"
));
assert_string_equal_free
(
"
\x1B
[1mbold
\x1B
[2mbolditalic
\x1B
[x2m
\x1B
[x1m
\x1B
[2m italic
\x1B
[x2m"
,
yahoo_html_to_codes
(
"<b>bold <i>bolditalic</i></b><i> italic</i>"
));
assert_string_equal_free
(
"
\x1B
[1mbold
\x1B
[2mbolditalic
\x1B
[x2m
\x1B
[x1m
\x1B
[2m
\x1B
[4mitalicunderline
\x1B
[x4m
\x1B
[x2m"
,
yahoo_html_to_codes
(
"<b>bold <i>bolditalic</i></b><i> <u>italicunderline</u></i>"
));
/* link */
assert_string_equal_free
(
"http://pidgin.im/"
,
yahoo_html_to_codes
(
"<A HREF=
\"
http://pidgin.im/
\"
>http://pidgin.im/</A>"
));
assert_string_equal_free
(
"mark@example.com"
,
yahoo_html_to_codes
(
"<A HREF=
\"
mailto:mark@example.com
\"
>mark@example.com</A>"
));
#if 0
assert_string_equal_free("Pidgin (http://pidgin.im/)",
yahoo_html_to_codes("<A HREF=\"http://pidgin.im/\">Pidgin</A>"));
#endif
/* font nothing */
assert_string_equal_free
(
"nothing"
,
yahoo_html_to_codes
(
"<font>nothing</font>"
));
/* font color */
assert_string_equal_free
(
"
\x1B
[#E71414mred
\x1B
[#000000m"
,
yahoo_html_to_codes
(
"<font color=
\"
#E71414
\"
>red</font>"
));
assert_string_equal_free
(
"
\x1B
[#FF0000mred
\x1B
[#000000m
\x1B
[#0000FFmblue
\x1B
[#000000m black"
,
yahoo_html_to_codes
(
"<font color=
\"
#FF0000
\"
>red</font> <font color=
\"
#0000FF
\"
>blue</font> black"
));
/* font size */
assert_string_equal_free
(
"<font size=
\"
10
\"
>test</font>"
,
yahoo_html_to_codes
(
"<font size=
\"
2
\"
>test</font>"
));
assert_string_equal_free
(
"<font size=
\"
30
\"
>test</font>"
,
yahoo_html_to_codes
(
"<font size=
\"
6
\"
>test</font>"
));
/* combinations */
assert_string_equal_free
(
"
\x1B
[#FF0000m<font size=
\"
8
\"
>redsmall</font> rednormal
\x1B
[#000000m"
,
yahoo_html_to_codes
(
"<font color=
\"
#FF0000
\"
><font size=
\"
1
\"
>redsmall</font> rednormal</font>"
));
assert_string_equal_free
(
"
\x1B
[#FF0000m<font size=
\"
8
\"
>redsmall</font>
\x1B
[#00FF00mgreennormal
\x1B
[#FF0000m rednormal
\x1B
[#000000m"
,
yahoo_html_to_codes
(
"<font color=
\"
#FF0000
\"
><font size=
\"
1
\"
>redsmall</font> <font color=
\"
#00FF00
\"
>greennormal</font> rednormal</font>"
));
assert_string_equal_free
(
"
\x1B
[1mbold
\x1B
[#FF0000mred <font face=
\"
Comic Sans MS
\"
size=
\"
20
\"
>larger
\x1B
[#000000mbacktoblack <font size=
\"
12
\"
>normalsize</font>
\x1B
[#FF0000m</font>
\x1B
[#000000m
\x1B
[x1m"
,
yahoo_html_to_codes
(
"<b>bold <font color=
\"
#FF0000
\"
>red <font face=
\"
Comic Sans MS
\"
size=
\"
5
\"
>larger <font color=
\"
#000000
\"
>backtoblack <font size=
\"
3
\"
>normalsize</font></font></font></font></b>"
));
/* buzz/unknown tags */
assert_string_equal_free
(
"<ding>"
,
yahoo_html_to_codes
(
"<ding>"
));
assert_string_equal_free
(
"Unknown <tags>"
,
yahoo_html_to_codes
(
"Unknown <tags>"
));
}
END_TEST
Suite
*
yahoo_util_suite
(
void
)
{
Suite
*
s
;
TCase
*
tc
;
s
=
suite_create
(
"Yahoo Utility Functions"
);
tc
=
tcase_create
(
"Convert IM from network format to HTML"
);
tcase_add_unchecked_fixture
(
tc
,
setup_codes_to_html
,
teardown_codes_to_html
);
tcase_add_test
(
tc
,
test_codes_to_html
);
suite_add_tcase
(
s
,
tc
);
tc
=
tcase_create
(
"Convert IM from HTML to network format"
);
tcase_add_test
(
tc
,
test_html_to_codes
);
suite_add_tcase
(
s
,
tc
);
return
s
;
}