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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
/*
Copyright 2010 Beman Dawes
Copyright 2019 Glen Joseph Fernandes
(glenjofe@gmail.com)
Distributed under the Boost Software License, Version 1.0.
(http://www.boost.org/LICENSE_1_0.txt)
*/
#include <boost/io/quoted.hpp>
#include <boost/core/lightweight_test.hpp>
#include <iostream>
#include <sstream>
int main()
{
const std::string s0("foo");
std::string r;
{
std::stringstream ss;
ss << boost::io::quoted(s0);
ss >> r;
BOOST_TEST(r == "\"foo\"");
}
{
std::stringstream ss;
ss << boost::io::quoted(s0);
ss >> boost::io::quoted(r);
BOOST_TEST(r == "foo");
}
const std::string s0s("foo bar");
{
std::stringstream ss;
ss << boost::io::quoted(s0s);
ss >> r;
BOOST_TEST(r == "\"foo");
}
{
std::stringstream ss;
ss << boost::io::quoted(s0s);
ss >> boost::io::quoted(r);
BOOST_TEST(r == "foo bar");
}
const std::string s1("foo\\bar, \" *");
{
std::stringstream ss;
ss << boost::io::quoted(s1);
ss >> r;
BOOST_TEST(r == "\"foo\\\\bar,");
}
{
std::stringstream ss;
ss << boost::io::quoted("foo\\bar, \" *");
ss >> r;
BOOST_TEST(r == "\"foo\\\\bar,");
}
{
std::stringstream ss;
ss << boost::io::quoted(s1);
ss >> boost::io::quoted(r);
BOOST_TEST(r == s1);
}
{
std::stringstream ss;
ss << boost::io::quoted(s1.c_str());
ss >> boost::io::quoted(r);
BOOST_TEST(r == s1);
}
std::string s2("'Jack & Jill'");
{
std::stringstream ss;
ss << boost::io::quoted(s2, '&', '\'');
ss >> boost::io::quoted(r, '&', '\'');
BOOST_TEST(r == s2);
}
const std::wstring ws1(L"foo$bar, \" *");
std::wstring wr;
{
std::wstringstream wss;
wss << boost::io::quoted(ws1, L'$');
wss >> boost::io::quoted(wr, L'$');
BOOST_TEST(wr == ws1);
}
const std::string s3("const string");
{
std::stringstream ss;
ss << boost::io::quoted(s3);
ss >> boost::io::quoted(r);
BOOST_TEST(r == s3);
}
{
std::stringstream ss;
ss << "\"abc";
ss >> boost::io::quoted(r);
BOOST_TEST(r == "abc");
}
{
std::stringstream ss;
ss << "abc";
ss >> boost::io::quoted(r);
BOOST_TEST(r == "abc");
}
{
std::stringstream ss;
ss << "abc def";
ss >> boost::io::quoted(r);
BOOST_TEST(r == "abc");
}
return boost::report_errors();
}
|