summaryrefslogtreecommitdiffstats
path: root/xbmc/utils/test/TestXBMCTinyXML.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/utils/test/TestXBMCTinyXML.cpp')
-rw-r--r--xbmc/utils/test/TestXBMCTinyXML.cpp58
1 files changed, 58 insertions, 0 deletions
diff --git a/xbmc/utils/test/TestXBMCTinyXML.cpp b/xbmc/utils/test/TestXBMCTinyXML.cpp
new file mode 100644
index 0000000..b3f84eb
--- /dev/null
+++ b/xbmc/utils/test/TestXBMCTinyXML.cpp
@@ -0,0 +1,58 @@
1/*
2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
8
9#include "test/TestUtils.h"
10#include "utils/StringUtils.h"
11#include "utils/XBMCTinyXML.h"
12
13#include <gtest/gtest.h>
14
15TEST(TestXBMCTinyXML, ParseFromString)
16{
17 bool retval = false;
18 // scraper results with unescaped &
19 CXBMCTinyXML doc;
20 std::string data("<details><url function=\"ParseTMDBRating\" "
21 "cache=\"tmdb-en-12244.json\">"
22 "http://api.themoviedb.org/3/movie/12244"
23 "?api_key=57983e31fb435df4df77afb854740ea9"
24 "&language=en&#x3f;&#x003F;&#0063;</url></details>");
25 doc.Parse(data);
26 TiXmlNode *root = doc.RootElement();
27 if (root && root->ValueStr() == "details")
28 {
29 TiXmlElement *url = root->FirstChildElement("url");
30 if (url && url->FirstChild())
31 {
32 retval = (url->FirstChild()->ValueStr() == "http://api.themoviedb.org/3/movie/12244?api_key=57983e31fb435df4df77afb854740ea9&language=en???");
33 }
34 }
35 EXPECT_TRUE(retval);
36}
37
38TEST(TestXBMCTinyXML, ParseFromFileHandle)
39{
40 bool retval = false;
41 // scraper results with unescaped &
42 CXBMCTinyXML doc;
43 FILE *f = fopen(XBMC_REF_FILE_PATH("/xbmc/utils/test/CXBMCTinyXML-test.xml").c_str(), "r");
44 ASSERT_NE(nullptr, f);
45 doc.LoadFile(f);
46 fclose(f);
47 TiXmlNode *root = doc.RootElement();
48 if (root && root->ValueStr() == "details")
49 {
50 TiXmlElement *url = root->FirstChildElement("url");
51 if (url && url->FirstChild())
52 {
53 std::string str = url->FirstChild()->ValueStr();
54 retval = (StringUtils::Trim(str) == "http://api.themoviedb.org/3/movie/12244?api_key=57983e31fb435df4df77afb854740ea9&language=en???");
55 }
56 }
57 EXPECT_TRUE(retval);
58}