Chris@1476: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@1476: Chris@1476: /* Chris@1476: Sonic Visualiser Chris@1476: An audio file viewer and annotation editor. Chris@1476: Centre for Digital Music, Queen Mary, University of London. Chris@1476: Chris@1476: This program is free software; you can redistribute it and/or Chris@1476: modify it under the terms of the GNU General Public License as Chris@1476: published by the Free Software Foundation; either version 2 of the Chris@1476: License, or (at your option) any later version. See the file Chris@1476: COPYING included with this distribution for more information. Chris@1476: */ Chris@1476: Chris@1476: #ifndef TEST_ENV_H Chris@1476: #define TEST_ENV_H Chris@1476: Chris@1476: #include "../System.h" Chris@1476: Chris@1476: #include Chris@1476: #include Chris@1476: #include Chris@1476: Chris@1476: #include Chris@1476: Chris@1476: using namespace std; Chris@1476: Chris@1476: const std::string utf8_name_sprkt = "\343\202\271\343\203\235\343\203\274\343\202\257\343\201\256\345\257\272\351\231\242"; Chris@1476: Chris@1476: class TestEnv : public QObject Chris@1476: { Chris@1476: Q_OBJECT Chris@1476: Chris@1476: private slots: Chris@1476: void getAbsent() Chris@1476: { Chris@1476: string value = "blather"; Chris@1476: bool rv = getEnvUtf8("nonexistent_environment_variable_I_sincerely_hope_including_a_missspellling_just_to_be_sure", Chris@1476: value); Chris@1476: QCOMPARE(rv, false); Chris@1476: QCOMPARE(value, ""); Chris@1476: } Chris@1478: Chris@1478: void getExpected() Chris@1478: { Chris@1478: string value; Chris@1478: bool rv = getEnvUtf8("PATH", value); Chris@1478: QCOMPARE(rv, true); Chris@1478: QVERIFY(value != ""); Chris@1478: } Chris@1476: Chris@1479: void roundTripShort() Chris@1479: { Chris@1479: bool rv = false; Chris@1479: rv = putEnvUtf8("XYZABC", "woo"); Chris@1479: QCOMPARE(rv, true); Chris@1479: string value; Chris@1479: rv = getEnvUtf8("XYZABC", value); Chris@1479: QCOMPARE(rv, true); Chris@1479: QCOMPARE(value, "woo"); Chris@1479: } Chris@1479: Chris@1476: void roundTripAsciiAscii() Chris@1476: { Chris@1476: bool rv = false; Chris@1476: rv = putEnvUtf8("SV_CORE_TEST_SYSTEM_RT_A_A", "EXPECTED_VALUE"); Chris@1476: QCOMPARE(rv, true); Chris@1476: string value; Chris@1476: rv = getEnvUtf8("SV_CORE_TEST_SYSTEM_RT_A_A", value); Chris@1476: QCOMPARE(rv, true); Chris@1476: QCOMPARE(value, "EXPECTED_VALUE"); Chris@1476: } Chris@1476: Chris@1476: void roundTripAsciiUtf8() Chris@1476: { Chris@1476: bool rv = false; Chris@1476: rv = putEnvUtf8("SV_CORE_TEST_SYSTEM_RT_A_U", utf8_name_sprkt); Chris@1476: QCOMPARE(rv, true); Chris@1476: string value; Chris@1476: rv = getEnvUtf8("SV_CORE_TEST_SYSTEM_RT_A_U", value); Chris@1476: QCOMPARE(rv, true); Chris@1476: QCOMPARE(value, utf8_name_sprkt); Chris@1476: } Chris@1476: Chris@1476: void roundTripUtf8Ascii() Chris@1476: { Chris@1476: bool rv = false; Chris@1476: rv = putEnvUtf8("SV_CORE_TEST_SYSTEM_RT_\351\207\215\345\272\206_A", "EXPECTED_VALUE"); Chris@1476: QCOMPARE(rv, true); Chris@1476: string value; Chris@1476: rv = getEnvUtf8("SV_CORE_TEST_SYSTEM_RT_\351\207\215\345\272\206_A", value); Chris@1476: QCOMPARE(rv, true); Chris@1476: QCOMPARE(value, "EXPECTED_VALUE"); Chris@1476: } Chris@1476: Chris@1476: void roundTripUtf8Utf8() Chris@1476: { Chris@1476: bool rv = false; Chris@1476: rv = putEnvUtf8("SV_CORE_TEST_SYSTEM_RT_\351\207\215\345\272\206_A", utf8_name_sprkt); Chris@1476: QCOMPARE(rv, true); Chris@1476: string value; Chris@1476: rv = getEnvUtf8("SV_CORE_TEST_SYSTEM_RT_\351\207\215\345\272\206_A", value); Chris@1476: QCOMPARE(rv, true); Chris@1476: QCOMPARE(value, utf8_name_sprkt); Chris@1476: } Chris@1476: }; Chris@1476: Chris@1476: #endif Chris@1476: Chris@1476: Chris@1476: Chris@1476: Chris@1476: