f06c05c18193920bacff9473cd7f011d51d61c9e
[mdictionary] / trunk / src / plugins / xdxf / tests / test.cpp
1 /*******************************************************************************
2
3     This file is part of mDictionary.
4
5     mDictionary is free software: you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation, either version 3 of the License, or
8     (at your option) any later version.
9
10     mDictionary is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14
15     You should have received a copy of the GNU General Public License
16     along with mDictionary.  If not, see <http://www.gnu.org/licenses/>.
17
18     Copyright 2010 Comarch S.A.
19
20 *******************************************************************************/
21
22 #include "test.h"
23 #include <QSignalSpy>
24
25 void XdxfTest::getNew() {
26
27     XdxfPlugin xdxfPlugin(this);
28     Settings *settings=new Settings;
29     settings->setValue("path","../tests/dict.xdxf");
30     CommonDictInterface *xdxfPlugin2 = xdxfPlugin.getNew(settings);
31
32     QList<Translation*> te6=xdxfPlugin2->searchWordList("*",8);
33     QCOMPARE(te6.size(),8);
34 }
35
36 void XdxfTest::searchFile() {
37
38     XdxfPlugin xdxfPluginB(this);
39     Settings *settings=new Settings;
40     settings->setValue("path","../tests/dict.xdxf");
41     CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
42
43     QCOMPARE(xdxfPlugin->search("."), QString("<key>.</key><t>kropka</t>"));
44     QCOMPARE(xdxfPlugin->search("1"), QString("<key>1</key><t>one</t>"));
45     QCOMPARE(xdxfPlugin->search("test"), QString("<key>test</key><t><c c=\"FF00FF\">kro</c>test01<pos>krowa</pos></t>"));
46 }
47
48 void XdxfTest::makeCache()
49 {
50     XdxfPlugin xdxfPluginB(this);
51     Settings *settings=new Settings;
52     settings->setValue("path","../tests/dict.xdxf");
53     settings->setValue("generateCache", "true");
54     CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
55     QCOMPARE(xdxfPlugin->settings()->value("cached"),tr("true"));
56     delete xdxfPlugin;
57 }
58
59 void XdxfTest::searchCache() {
60     XdxfPlugin xdxfPluginB(this);
61     Settings *settings=new Settings;
62     settings->setValue("path","../tests/dict.xdxf");
63     settings->setValue("generateCache", "true");
64     CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
65
66     QCOMPARE(xdxfPlugin->settings()->value("cached"),tr("true"));
67     QCOMPARE(xdxfPlugin->search("."), QString("<key>.</key><t>kropka</t>"));
68     QCOMPARE(xdxfPlugin->search("1"), QString("<key>1</key><t>one</t>"));
69     QCOMPARE(xdxfPlugin->search("test"), QString("<key>test</key><t><c c=\"FF00FF\">kro</c>test01<pos>krowa</pos></t>"));
70
71     delete xdxfPlugin;
72 }
73
74 void XdxfTest::searchWordListCache(){
75     XdxfPlugin xdxfPluginB(this);
76     Settings *settings=new Settings;
77     settings->setValue("path","../tests/dict.xdxf");
78     settings->setValue("generateCache", "true");
79     CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
80
81     QList<Translation*> te = xdxfPlugin->searchWordList(".", 10);
82     if(te.size()>0)
83         QCOMPARE(te.size(), 9);
84     QList<Translation*> te2 = xdxfPlugin->searchWordList("1",10);
85     QCOMPARE(te2.size(), 5);
86
87     QList<Translation*> te3 = xdxfPlugin->searchWordList("1", 2);
88         QCOMPARE(te3.size(), 2);
89
90     QList<Translation*> te4 = xdxfPlugin->searchWordList("ho*SE", 10);
91         QCOMPARE(te4.at(0)->key(), QString("house"));
92
93     QList<Translation*> te5 = xdxfPlugin->searchWordList("*");
94         QCOMPARE(te5.size(), 9);
95
96     QList<Translation*> te6 = xdxfPlugin->searchWordList("*", 8);
97         QCOMPARE(te6.size(), 8);
98
99     QList<Translation*> te7 = xdxfPlugin->searchWordList("*ou*");
100         QCOMPARE(te7.at(0)->key(), QString("house"));
101
102     QList<Translation*> te8 = xdxfPlugin->searchWordList("1?");
103         QCOMPARE(te8.at(0)->key(), QString("10"));
104
105     QList<Translation*> te9 = xdxfPlugin->searchWordList("1???");
106         QCOMPARE(te9.at(0)->key(), QString("1000"));
107
108     QList<Translation*> te10 = xdxfPlugin->searchWordList("1????*");
109         QCOMPARE(te10.at(0)->key(), QString("1 000 000"));
110
111     QList<Translation*> te11 = xdxfPlugin->searchWordList("h**?*?**e");
112         QCOMPARE(te11.at(0)->key(), QString("house"));
113
114     delete xdxfPlugin;
115 }
116
117 void XdxfTest::searchWordListFile() {
118
119     XdxfPlugin xdxfPluginB(this);
120     Settings *settings=new Settings;
121     settings->setValue("path","../tests/dict.xdxf");
122     CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
123
124     QList<Translation*> te = xdxfPlugin->searchWordList(".", 10);
125     if(te.size()>0)
126         QCOMPARE(te.size(), 9);
127     QList<Translation*> te2 = xdxfPlugin->searchWordList("1",10);
128     QCOMPARE(te2.size(), 5);
129
130     QList<Translation*> te3 = xdxfPlugin->searchWordList("1", 2);
131         QCOMPARE(te3.size(), 2);
132
133     QList<Translation*> te4 = xdxfPlugin->searchWordList("ho*SE", 10);
134         QCOMPARE(te4.at(0)->key(), QString("house"));
135
136     QList<Translation*> te5 = xdxfPlugin->searchWordList("*");
137         QCOMPARE(te5.size(), 9);
138
139     QList<Translation*> te6 = xdxfPlugin->searchWordList("*", 8);
140         QCOMPARE(te6.size(), 8);
141
142     QList<Translation*> te7 = xdxfPlugin->searchWordList("*ou*");
143         QCOMPARE(te7.at(0)->key(), QString("house"));
144
145     QList<Translation*> te8 = xdxfPlugin->searchWordList("1?");
146         QCOMPARE(te8.at(0)->key(), QString("10"));
147
148     QList<Translation*> te9 = xdxfPlugin->searchWordList("1???");
149         QCOMPARE(te9.at(0)->key(), QString("1000"));
150
151     QList<Translation*> te10 = xdxfPlugin->searchWordList("1????*");
152         QCOMPARE(te10.at(0)->key(), QString("1 000 000"));
153
154     QList<Translation*> te11 = xdxfPlugin->searchWordList("h**?*?**e");
155         QCOMPARE(te11.at(0)->key(), QString("house"));
156
157     delete xdxfPlugin;
158 }
159
160 void XdxfTest::stop() {
161
162     XdxfPlugin xdxfPluginB(this);
163     settings->setValue("path","../tests/dict.xdxf");
164     CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
165
166     Settings *settings=new Settings;
167
168     QString string("*");
169     QFuture<QList<Translation*> > future = QtConcurrent::run(xdxfPlugin, &CommonDictInterface::searchWordList, string, 10);
170     QList<Translation*> te5 = future.result();
171     QCOMPARE(te5.size(), 9);
172
173     delete xdxfPlugin;
174 }
175
176
177 void XdxfTest::langFrom() {
178
179     XdxfPlugin xdxfPluginB(this);
180     Settings *settings=new Settings;
181     settings->setValue("path","../tests/dict.xdxf");
182     CommonDictInterface *xdxfPlugin = xdxfPluginB.getNew(settings);
183
184     QCOMPARE(xdxfPlugin->langFrom(), QString("ENG"));
185
186     delete xdxfPlugin;
187 }
188
189 QTEST_MAIN(XdxfTest)
190 //#include "testqstring.moc"