File: qterminal_test.cpp

package info (click to toggle)
qterminal 2.2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,400 kB
  • sloc: cpp: 5,691; xml: 150; sh: 26; makefile: 9
file content (53 lines) | stat: -rw-r--r-- 2,591 bytes parent folder | download | duplicates (3)
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
/***************************************************************************
 *   Copyright (C) 2022 by LXQt team                                       *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
 ***************************************************************************/

#include "qterminal_test.h"

#include "qterminalutils.h"

#include <QtTest>

// handy shortcut copied from liblxqt
#ifndef QL1S
#define QL1S(x) QLatin1String(x)
#endif

void QTerminalTest::testParseCommand()
{
    /* Common usage */
    // qterminal -e 'fpad -s "PATH/ha ha"'
    // qterminal -e "fpad -s \"PATH/ha ha\"" # \" is decoded as " by the shell
    QCOMPARE(parse_command(QL1S(R"(fpad -s "PATH/ha ha")")),
             QStringList() << QL1S("fpad") << QL1S("-s") << QL1S("PATH/ha ha"));
    // qterminal -e "fpad -s 'PATH/ha ha'"
    QCOMPARE(parse_command(QL1S(R"(fpad -s 'PATH/ha ha')")),
             QStringList() << QL1S("fpad") << QL1S("-s") << QL1S("PATH/ha ha"));
    // qterminal -e 'fpad -s PATH/ha\ ha'
    // qterminal -e "fpad -s PATH/ha\ ha"
    QCOMPARE(parse_command(QL1S(R"(fpad -s PATH/ha\ ha)")),
             QStringList() << QL1S("fpad") << QL1S("-s") << QL1S("PATH/ha ha"));

    /* Uncommon usage */
    // qterminal -e 'fpad -s \"PATH/ha ha\"'
    QCOMPARE(parse_command(QL1S(R"(fpad -s \"PATH/ha ha\")")),
             QStringList() << QL1S("fpad") << QL1S("-s") << QL1S("\\\"PATH/ha") << QL1S("ha\\\""));
    // qterminal -e 'fpad -s "PATH/ha\ ha"'
    QCOMPARE(parse_command(QL1S(R"(fpad -s "PATH/ha\ ha")")),
             QStringList() << QL1S("fpad") << QL1S("-s") << QL1S("PATH/ha ha"));
}

QTEST_MAIN(QTerminalTest)