39
38
Args ProgramNameOnly = { 1, { "name" } };
40
39
Args BypassedParameter = { 1, { "name", "-help" } };
42
Args XOptions1 = { 2, { "", "-manual-redirection" } };
43
Args XOptions2 = { 3, { "", "-manual-redirection", "-bypass-wm-hint" } };
45
Args XOptions3 = { 4, { "", "-manual-redirection", "-bypass-wm-hint",
46
"-use-self-composition"} };
48
Args XOptions4 = { 5, { "", "-manual-redirection", "-bypass-wm-hint",
49
"-use-self-composition", "-unconditional-show"} };
51
Args Ignored = { 16, { "", "-style", "STYLE", "-session", "SESSION",
41
Args Ignored = { 15, { "", "-style", "STYLE", "-session", "SESSION",
52
42
"-graphicssystem", "GRAPHICSSYSTEM",
53
43
"-testability", "TESTABILITY", "-qdevel", "-reverse",
54
44
"-stylesheet", "-widgetcount", "-qdebug",
55
"-software", "-remote-theme" } };
57
47
bool operator==(const MImServerCommonOptions &x,
58
48
const MImServerCommonOptions &y)
60
50
return (x.showHelp == y.showHelp);
63
bool operator==(const MImServerXOptions &x,
64
const MImServerXOptions &y)
66
return x.bypassWMHint == y.bypassWMHint
67
&& x.manualRedirection == y.manualRedirection
68
&& x.selfComposited == y.selfComposited
69
&& x.unconditionalShow == y.unconditionalShow;
86
67
void Ut_MImServerOptions::cleanup()
88
69
commonOptions = MImServerCommonOptions();
89
xOptions = MImServerXOptions();
92
72
void Ut_MImServerOptions::testCommonOptions_data()
94
74
QTest::addColumn<Args>("args");
95
75
QTest::addColumn<MImServerCommonOptions>("expectedCommonOptions");
96
QTest::addColumn<MImServerXOptions>("expectedXOptions");
97
76
QTest::addColumn<bool>("expectedRecognition");
99
78
MImServerCommonOptions helpEnabled;
100
79
helpEnabled.showHelp = true;
102
MImServerXOptions allXDisabled;
104
QTest::newRow("help") << Help << helpEnabled << allXDisabled << true;
106
QTest::newRow("help+invalid") << HelpPlusInvalid << helpEnabled << allXDisabled << false;
81
QTest::newRow("help") << Help << helpEnabled << true;
83
QTest::newRow("help+invalid") << HelpPlusInvalid << helpEnabled << false;
108
85
MImServerCommonOptions helpDisabled;
110
QTest::newRow("invalid") << Invalid << helpDisabled << allXDisabled << false;
87
QTest::newRow("invalid") << Invalid << helpDisabled << false;
112
89
// at least we should not crash with such parameters
113
QTest::newRow("nothing") << Nothing << helpDisabled << allXDisabled << true;
115
QTest::newRow("bypassed parameter") << BypassedParameter << helpDisabled << allXDisabled << true;
117
QTest::newRow("program name only") << ProgramNameOnly << helpDisabled << allXDisabled << true;
119
QTest::newRow("ignored") << Ignored << helpDisabled << allXDisabled << true;
121
MImServerXOptions xOptions(allXDisabled);
123
xOptions.manualRedirection = true;
124
QTest::newRow("x options 1") << XOptions1 << helpDisabled << xOptions << true;
126
xOptions.bypassWMHint = true;
127
QTest::newRow("x options 2") << XOptions2 << helpDisabled << xOptions << true;
129
xOptions.selfComposited = true;
130
QTest::newRow("x options 3") << XOptions3 << helpDisabled << xOptions << true;
132
xOptions.unconditionalShow = true;
133
QTest::newRow("x options 4") << XOptions4 << helpDisabled << xOptions << true;
90
QTest::newRow("nothing") << Nothing << helpDisabled << true;
92
QTest::newRow("bypassed parameter") << BypassedParameter << helpDisabled << true;
94
QTest::newRow("program name only") << ProgramNameOnly << helpDisabled << true;
96
QTest::newRow("ignored") << Ignored << helpDisabled << true;
136
99
void Ut_MImServerOptions::testCommonOptions()
138
101
QFETCH(Args, args);
139
102
QFETCH(MImServerCommonOptions, expectedCommonOptions);
140
QFETCH(MImServerXOptions, expectedXOptions);
141
103
QFETCH(bool, expectedRecognition);
143
105
bool everythingRecognized = parseCommandLine(args.argc, args.argv);
145
107
QCOMPARE(everythingRecognized, expectedRecognition);
146
108
QCOMPARE(commonOptions, expectedCommonOptions);
147
QCOMPARE(xOptions, expectedXOptions);
150
111
QTEST_MAIN(Ut_MImServerOptions)