86 } |
101 } |
87 |
102 |
88 void UT_LogsRemove::testClearEvents() |
103 void UT_LogsRemove::testClearEvents() |
89 { |
104 { |
90 // Clearing with recent view (no ids) |
105 // Clearing with recent view (no ids) |
91 QList<int> events; |
106 QList<LogsEvent*> events; |
92 bool async( false ); |
107 bool async( false ); |
93 QVERIFY( mLogsRemove->clearEvents(events, async) == 0 ); |
108 QVERIFY( mLogsRemove->clearEvents(events, async) == 0 ); |
94 QVERIFY( !async ); |
109 QVERIFY( !async ); |
95 QVERIFY( mLogsRemove->mRemovedEvents.count() == 0 ); |
110 QVERIFY( mLogsRemove->mRemovedEvents.count() == 0 ); |
96 QVERIFY( !mLogsRemove->IsActive() ); |
111 QVERIFY( !mLogsRemove->IsActive() ); |
97 |
112 |
98 // Clearing with recent view (ids) |
113 // Clearing with recent view (ids) |
99 events.append(2); |
114 ADD_EVENT_WITH_ID(events, 2); |
100 events.append(100); |
115 ADD_EVENT_WITH_ID(events, 100); |
101 QVERIFY( mLogsRemove->clearEvents(events, async) == 0 ); |
116 QVERIFY( mLogsRemove->clearEvents(events, async) == 0 ); |
102 QVERIFY( async ); |
117 QVERIFY( async ); |
103 QVERIFY( mLogsRemove->mRemovedEvents.count() == 2 ); |
118 QVERIFY( mLogsRemove->mRemovedEvents.count() == 2 ); |
104 QVERIFY( mLogsRemove->IsActive() ); |
119 QVERIFY( mLogsRemove->IsActive() ); |
105 |
120 |
106 // Clearing with all events (no ids) |
121 // Clearing with all events (no ids) |
|
122 qDeleteAll(events); |
107 events.clear(); |
123 events.clear(); |
108 LogsRemove removeWithAllEvents(*this, true); |
124 LogsRemove removeWithAllEvents(*this, true); |
109 QVERIFY( removeWithAllEvents.clearEvents(events, async) == 0 ); |
125 QVERIFY( removeWithAllEvents.clearEvents(events, async) == 0 ); |
110 QVERIFY( !async ); |
126 QVERIFY( !async ); |
111 QVERIFY( removeWithAllEvents.mRemovedEvents.count() == 0 ); |
127 QVERIFY( removeWithAllEvents.mRemovedEvents.count() == 0 ); |
112 QVERIFY( !removeWithAllEvents.IsActive() ); |
128 QVERIFY( !removeWithAllEvents.IsActive() ); |
113 |
129 |
114 // Clearing with all events (ids) |
130 // Clearing with all events (ids) |
115 events.append(99); |
131 ADD_EVENT_WITH_ID(events, 99); |
116 events.append(100); |
132 ADD_EVENT_WITH_ID(events, 100); |
117 QVERIFY( removeWithAllEvents.clearEvents(events, async) == 0 ); |
133 QVERIFY( removeWithAllEvents.clearEvents(events, async) == 0 ); |
118 QVERIFY( async ); |
134 QVERIFY( async ); |
119 QVERIFY( removeWithAllEvents.mRemovedEvents.count() == 2 ); |
135 QVERIFY( removeWithAllEvents.mRemovedEvents.count() == 2 ); |
120 QVERIFY( removeWithAllEvents.mRemovedEvents.at(0) == 99 ); |
136 QVERIFY( removeWithAllEvents.mRemovedEvents.at(0).logId() == 99 ); |
121 QVERIFY( removeWithAllEvents.mRemovedEvents.at(1) == 100 ); |
137 QVERIFY( removeWithAllEvents.mRemovedEvents.at(1).logId() == 100 ); |
122 QVERIFY( removeWithAllEvents.IsActive() ); |
138 QVERIFY( removeWithAllEvents.IsActive() ); |
123 |
139 |
124 // Clearing not allowed while previous is active |
140 // Clearing not allowed while previous is active |
125 events.append(200); |
141 ADD_EVENT_WITH_ID(events, 200); |
126 QVERIFY( removeWithAllEvents.clearEvents(events, async) != 0 ); |
142 QVERIFY( removeWithAllEvents.clearEvents(events, async) != 0 ); |
127 QVERIFY( mLogsRemove->mRemovedEvents.count() == 2 ); |
143 QVERIFY( mLogsRemove->mRemovedEvents.count() == 2 ); |
128 QVERIFY( !async ); |
144 QVERIFY( !async ); |
129 QVERIFY( removeWithAllEvents.IsActive() ); |
145 QVERIFY( removeWithAllEvents.IsActive() ); |
|
146 qDeleteAll(events); |
|
147 } |
|
148 |
|
149 void UT_LogsRemove::testClearEventsWithMergedDuplicates() |
|
150 { |
|
151 QList<LogsEvent*> events; |
|
152 bool async( false ); |
|
153 |
|
154 ADD_EVENT_WITH_ID(events, 2); |
|
155 ADD_EVENT_WITH_ID(events, 3); |
|
156 ADD_EVENT_WITH_ID_2(events.at(0)->mergedDuplicates(), 5); |
|
157 ADD_EVENT_WITH_ID_2(events.at(0)->mergedDuplicates(), 6); |
|
158 ADD_EVENT_WITH_ID_2(events.at(1)->mergedDuplicates(), 7); |
|
159 |
|
160 QVERIFY( mLogsRemove->clearEvents(events, async) == 0 ); |
|
161 QVERIFY( async ); |
|
162 QCOMPARE( mLogsRemove->mRemovedEvents.count(), 2 ); |
|
163 QVERIFY( mLogsRemove->mRemovedEventDuplicates.count() == 3 ); |
|
164 QVERIFY( mLogsRemove->IsActive() ); |
|
165 QCOMPARE( mLogsRemove->mCurrentEventId, 2 ); |
|
166 |
|
167 // Simulate completion, removing should continue with first item from duplicates list |
|
168 mLogsRemove->removeCompleted(); |
|
169 QVERIFY( !mRemoveCompleted ); |
|
170 QCOMPARE( mLogsRemove->mCurrentEventId, 5 ); |
|
171 QVERIFY( mLogsRemove->mRemovedEventDuplicates.count() == 2 ); |
|
172 mLogsRemove->removeCompleted(); |
|
173 QVERIFY( !mRemoveCompleted ); |
|
174 QCOMPARE( mLogsRemove->mCurrentEventId, 6 ); |
|
175 QVERIFY( mLogsRemove->mRemovedEventDuplicates.count() == 1 ); |
|
176 mLogsRemove->removeCompleted(); |
|
177 QVERIFY( !mRemoveCompleted ); |
|
178 QCOMPARE( mLogsRemove->mCurrentEventId, 7 ); |
|
179 QVERIFY( mLogsRemove->mRemovedEventDuplicates.count() == 0 ); |
|
180 mLogsRemove->removeCompleted(); |
|
181 QVERIFY( mRemoveCompleted ); |
|
182 |
|
183 qDeleteAll(events); |
130 } |
184 } |
131 |
185 |
132 void UT_LogsRemove::testRunError() |
186 void UT_LogsRemove::testRunError() |
133 { |
187 { |
134 // No fatal callback for access denied error |
188 // No fatal callback for access denied error |