/* * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application * Copyright (C) 2005-2019, Anthony Minessale II * * Version: MPL 1.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application * * The Initial Developer of the Original Code is * Anthony Minessale II * Portions created by the Initial Developer are Copyright (C) * the Initial Developer. All Rights Reserved. * * Contributor(s): * Chris Rienzo * Seven Du * * * switch_xml.c -- tests core xml functions * */ #include #include #include FST_MINCORE_BEGIN("./conf") { FST_SUITE_BEGIN(switch_xml) { FST_SETUP_BEGIN() { } FST_SETUP_END() FST_TEARDOWN_BEGIN() { } FST_TEARDOWN_END() FST_TEST_BEGIN(test_cdata) { const char *text = ""; switch_xml_t xml = switch_xml_parse_str_dynamic((char *)text, SWITCH_TRUE); fst_requires(xml); fst_check(xml->flags & SWITCH_XML_CDATA); switch_xml_free(xml); text = ""; xml = switch_xml_parse_str_dynamic((char *)text, SWITCH_TRUE); fst_requires(xml); fst_check((xml->flags & SWITCH_XML_CDATA) == 0); fst_check_string_equals(xml->child->name, "tag"); fst_check(xml->child->flags & SWITCH_XML_CDATA); switch_xml_free(xml); } FST_TEST_END() FST_TEST_BEGIN(test_utf_8) { const char *text = "Voulez-Vous Parler Français"; switch_xml_t xml = switch_xml_parse_str_dynamic((char *)text, SWITCH_TRUE); char *xml_string = NULL; fst_requires(xml); xml_string = switch_xml_toxml(xml, SWITCH_FALSE); fst_requires(xml_string); fst_check_string_equals(xml_string, "Voulez-Vous Parler Français\n"); free(xml_string); xml_string = switch_xml_toxml_ex(xml, SWITCH_FALSE, SWITCH_FALSE); fst_requires(xml_string); fst_check_string_equals(xml_string, "Voulez-Vous Parler Français\n"); switch_xml_free(xml); free(xml_string); text = "你好,中文"; xml = switch_xml_parse_str_dynamic((char *)text, SWITCH_TRUE); fst_requires(xml); xml_string = switch_xml_toxml(xml, SWITCH_FALSE); fst_requires(xml_string); fst_check_string_equals(xml_string, "你好,中文\n"); free(xml_string); xml_string = switch_xml_toxml_ex(xml, SWITCH_FALSE, SWITCH_FALSE); fst_requires(xml_string); fst_check_string_equals(xml_string, "你好,中文\n"); switch_xml_free(xml); free(xml_string); text = ""; xml = switch_xml_parse_str_dynamic((char *)text, SWITCH_TRUE); fst_requires(xml); xml_string = switch_xml_toxml(xml, SWITCH_FALSE); fst_requires(xml_string); fst_check_string_equals(xml_string, "\n Voulez-Vous Parler Français\n\n"); free(xml_string); xml_string = switch_xml_toxml_ex(xml, SWITCH_FALSE, SWITCH_FALSE); fst_requires(xml_string); fst_check_string_equals(xml_string, "\n Voulez-Vous Parler Français\n\n"); switch_xml_free(xml); free(xml_string); } FST_TEST_END() } FST_SUITE_END() } FST_MINCORE_END()