diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch) | |
tree | 67208f7c145782a7e90b123b982ca78d88cc2c87 /akregator/src/mk4storage/metakit/tests/tnotify.cpp | |
download | tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'akregator/src/mk4storage/metakit/tests/tnotify.cpp')
-rw-r--r-- | akregator/src/mk4storage/metakit/tests/tnotify.cpp | 444 |
1 files changed, 444 insertions, 0 deletions
diff --git a/akregator/src/mk4storage/metakit/tests/tnotify.cpp b/akregator/src/mk4storage/metakit/tests/tnotify.cpp new file mode 100644 index 000000000..e630db951 --- /dev/null +++ b/akregator/src/mk4storage/metakit/tests/tnotify.cpp @@ -0,0 +1,444 @@ +// tnotify.cpp -- Regression test program, notification tests +// $Id$ +// This is part of Metakit, the homepage is http://www.equi4.com/metakit/ + +#include "regress.h" + +void TestNotify() +{ + B(n01, Add to selection, 0) + { + c4_IntProp p1 ("p1"); + c4_View v1; + v1.Add(p1 [111]); + v1.Add(p1 [222]); + v1.Add(p1 [333]); + v1.Add(p1 [345]); + v1.Add(p1 [234]); + v1.Add(p1 [123]); + A(v1.GetSize() == 6); + c4_View v2 = v1.SelectRange(p1 [200], p1 [333]); + A(v2.GetSize() == 3); + A(p1 (v2[0]) == 222); + A(p1 (v2[1]) == 333); + A(p1 (v2[2]) == 234); + v1.Add(p1 [300]); + A(v1.GetSize() == 7); + A(v2.GetSize() == 4); + A(p1 (v2[0]) == 222); + A(p1 (v2[1]) == 333); + A(p1 (v2[2]) == 234); + A(p1 (v2[3]) == 300); + v1.Add(p1 [199]); + A(v1.GetSize() == 8); + A(v2.GetSize() == 4); + A(p1 (v2[0]) == 222); + A(p1 (v2[1]) == 333); + A(p1 (v2[2]) == 234); + A(p1 (v2[3]) == 300); + } E; + + B(n02, Remove from selection, 0) + { + c4_IntProp p1 ("p1"); + c4_View v1; + v1.Add(p1 [111]); + v1.Add(p1 [222]); + v1.Add(p1 [333]); + v1.Add(p1 [345]); + v1.Add(p1 [234]); + v1.Add(p1 [123]); + A(v1.GetSize() == 6); + c4_View v2 = v1.SelectRange(p1 [200], p1 [333]); + A(v2.GetSize() == 3); + A(p1 (v2[0]) == 222); + A(p1 (v2[1]) == 333); + A(p1 (v2[2]) == 234); + v1.RemoveAt(2); + A(v1.GetSize() == 5); + A(v2.GetSize() == 2); + A(p1 (v2[0]) == 222); + A(p1 (v2[1]) == 234); + v1.RemoveAt(2); + A(v1.GetSize() == 4); + A(v2.GetSize() == 2); + A(p1 (v2[0]) == 222); + A(p1 (v2[1]) == 234); + } E; + + B(n03, Modify into selection, 0) + { + c4_IntProp p1 ("p1"); + c4_View v1; + v1.Add(p1 [111]); + v1.Add(p1 [222]); + v1.Add(p1 [333]); + v1.Add(p1 [345]); + v1.Add(p1 [234]); + v1.Add(p1 [123]); + A(v1.GetSize() == 6); + c4_View v2 = v1.SelectRange(p1 [200], p1 [333]); + A(v2.GetSize() == 3); + A(p1 (v2[0]) == 222); + A(p1 (v2[1]) == 333); + A(p1 (v2[2]) == 234); + p1 (v1[5]) = 300; + A(v2.GetSize() == 4); + A(p1 (v2[0]) == 222); + A(p1 (v2[1]) == 333); + A(p1 (v2[2]) == 234); + A(p1 (v2[3]) == 300); + } E; + + B(n04, Modify out of selection, 0) + { + c4_IntProp p1 ("p1"); + c4_View v1; + v1.Add(p1 [111]); + v1.Add(p1 [222]); + v1.Add(p1 [333]); + v1.Add(p1 [345]); + v1.Add(p1 [234]); + v1.Add(p1 [123]); + A(v1.GetSize() == 6); + c4_View v2 = v1.SelectRange(p1 [200], p1 [333]); + A(v2.GetSize() == 3); + A(p1 (v2[0]) == 222); + A(p1 (v2[1]) == 333); + A(p1 (v2[2]) == 234); + p1 (v1[2]) = 100; + A(v2.GetSize() == 2); + A(p1 (v2[0]) == 222); + A(p1 (v2[1]) == 234); + } E; + + B(n05, Add to sorted, 0) + { + c4_IntProp p1 ("p1"); + c4_View v1; + v1.Add(p1 [111]); + v1.Add(p1 [222]); + v1.Add(p1 [333]); + v1.Add(p1 [345]); + v1.Add(p1 [234]); + v1.Add(p1 [123]); + A(v1.GetSize() == 6); + c4_View v2 = v1.Sort(); + A(v2.GetSize() == 6); + A(p1 (v2[0]) == 111); + A(p1 (v2[1]) == 123); + A(p1 (v2[2]) == 222); + A(p1 (v2[3]) == 234); + A(p1 (v2[4]) == 333); + A(p1 (v2[5]) == 345); + v1.Add(p1 [300]); + A(v2.GetSize() == 7); + A(p1 (v2[0]) == 111); + A(p1 (v2[1]) == 123); + A(p1 (v2[2]) == 222); + A(p1 (v2[3]) == 234); + A(p1 (v2[4]) == 300); + A(p1 (v2[5]) == 333); + A(p1 (v2[6]) == 345); + } E; + + B(n06, Remove from sorted, 0) + { + c4_IntProp p1 ("p1"); + c4_View v1; + v1.Add(p1 [111]); + v1.Add(p1 [222]); + v1.Add(p1 [333]); + v1.Add(p1 [345]); + v1.Add(p1 [234]); + v1.Add(p1 [123]); + A(v1.GetSize() == 6); + c4_View v2 = v1.Sort(); + A(v2.GetSize() == 6); + A(p1 (v2[0]) == 111); + A(p1 (v2[1]) == 123); + A(p1 (v2[2]) == 222); + A(p1 (v2[3]) == 234); + A(p1 (v2[4]) == 333); + A(p1 (v2[5]) == 345); + v1.RemoveAt(2); + A(v2.GetSize() == 5); + A(p1 (v2[0]) == 111); + A(p1 (v2[1]) == 123); + A(p1 (v2[2]) == 222); + A(p1 (v2[3]) == 234); + A(p1 (v2[4]) == 345); + } E; + + B(n07, New property through sort, 0) + { + c4_IntProp p1 ("p1"), p2 ("p2"); + c4_View v1; + v1.Add(p1 [11]); + v1.Add(p1 [1]); + v1.Add(p1 [111]); + A(v1.FindProperty(p2.GetId()) < 0); + + c4_View v2 = v1.SortOn(p1); + A(v2.FindProperty(p2.GetId()) < 0); + + A(v2.GetSize() == 3); + A(p1 (v2[0]) == 1); + A(p1 (v2[1]) == 11); + A(p1 (v2[2]) == 111); + + p2 (v1[0]) = 22; + A(v1.FindProperty(p2.GetId()) == 1); + A(v2.FindProperty(p2.GetId()) == 1); + + A(p2 (v2[1]) == 22); + } E; + + B(n08, Nested project and select, 0) + { + c4_IntProp p1 ("p1"), p2 ("p2"); + c4_View v1; + v1.Add(p1 [10] + p2 [1]); + v1.Add(p1 [11]); + v1.Add(p1 [12] + p2 [1]); + v1.Add(p1 [13]); + v1.Add(p1 [14] + p2 [1]); + v1.Add(p1 [15]); + v1.Add(p1 [16] + p2 [1]); + A(v1.GetSize() == 7); + + c4_View v2 = v1.Select(p2 [1]); + A(v2.GetSize() == 4); + A(p1 (v2[0]) == 10); + A(p1 (v2[1]) == 12); + A(p1 (v2[2]) == 14); + A(p1 (v2[3]) == 16); + + c4_View v3 = v2.Project(p1); + A(v3.GetSize() == 4); + A(p1 (v3[0]) == 10); + A(p1 (v3[1]) == 12); + A(p1 (v3[2]) == 14); + A(p1 (v3[3]) == 16); + + A(p2 (v3[0]) == 0); + A(p2 (v3[1]) == 0); + A(p2 (v3[2]) == 0); + A(p2 (v3[3]) == 0); + +/* not yet implemented: setting result of selection + p1 (v3[1]) = 123; + A(p1 (v3[1]) == 123); + A(p1 (v2[1]) == 123); + A(p1 (v1[2]) == 123); +*/ + } E; + + B(n09, Multiple dependencies, 0) + { + c4_IntProp p1 ("p1"), p2 ("p2"); + c4_View v1; + v1.Add(p1 [111] + p2[1111]); + v1.Add(p1 [222]); + v1.Add(p1 [333]); + v1.Add(p1 [345]); + v1.Add(p1 [234]); + v1.Add(p1 [123]); + A(v1.GetSize() == 6); + + c4_View v2 = v1.SelectRange(p1 [200], p1 [333]); + A(v2.GetSize() == 3); + A(p1 (v2[0]) == 222); + A(p1 (v2[1]) == 333); + A(p1 (v2[2]) == 234); + + c4_View v3 = v1.SelectRange(p1 [340], p1 [350]); + A(v3.GetSize() == 1); + A(p1 (v3[0]) == 345); + + c4_View v4 = v2.SortOn(p1); + A(v4.GetSize() == 3); + A(p1 (v4[0]) == 222); + A(p1 (v4[1]) == 234); + A(p1 (v4[2]) == 333); + + c4_View v5 = v3.SortOn(p1); + A(v5.GetSize() == 1); + A(p1 (v5[0]) == 345); + + p1 (v1[2]) = 346; + + A(v2.GetSize() == 2); + A(p1 (v2[0]) == 222); + A(p1 (v2[1]) == 234); + + A(v3.GetSize() == 2); + A(p1 (v3[0]) == 346); + A(p1 (v3[1]) == 345); + + A(v4.GetSize() == 2); + A(p1 (v4[0]) == 222); + A(p1 (v4[1]) == 234); + + A(v5.GetSize() == 2); + A(p1 (v5[0]) == 345); + A(p1 (v5[1]) == 346); + } E; + + B(n10, Modify sorted duplicates, 0) + { + c4_IntProp p1 ("p1"); + c4_View v1; + v1.SetSize(3); + p1 (v1[0]) = 0; + c4_View v2 = v1.Sort(); + p1 (v1[0]) = 1; + p1 (v1[1]) = 1; // crashed in 1.5, fix in: c4_SortSeq::PosInMap + } E; + + B(n11, Resize compound derived view, 0) + { + c4_IntProp p1 ("p1"), p2 ("p2"); + c4_View v1 = (p1, p2); + c4_View v2 = v1.SelectRange(p2 [200], p2 [333]); + c4_View v3 = v2.SortOn(p1); + A(v2.GetSize() == 0); + A(v3.GetSize() == 0); + v1.SetSize(1); // crashed in 1.5, fix in: c4_FilterSeq::Match + A(v1.GetSize() == 1); + A(v2.GetSize() == 0); + A(v3.GetSize() == 0); + v1[0] = p2 [300]; + A(v1.GetSize() == 1); + A(v2.GetSize() == 1); + A(v3.GetSize() == 1); + A(p2 (v2[0]) == 300); + v1.Add(p1 [199]); + A(v1.GetSize() == 2); + A(v2.GetSize() == 1); + A(p2 (v2[0]) == 300); + } E; + + B(n12, Alter multiply derived view, 0) + { + c4_IntProp p1 ("p1"); + c4_StringProp p2 ("p2"), p3 ("p3"); + c4_View v1 = (p1, p2); + c4_View v2 = v1.Select(p1 [1]); + c4_View v3 = v2.SortOn(p2); + c4_View v4 = v1.Select(p1 [2]); + c4_View v5 = v4.SortOn(p2); + + v1.Add(p1[1] + p2 ["een"] + p3 ["1"]); + v1.Add(p1[1] + p2 ["elf"] + p3 ["11"]); + v1.Add(p1[2] + p2 ["twee"] + p3 ["2"]); + v1.Add(p1[2] + p2 ["twaalf"] + p3 ["12"]); + v1.Add(p1[2] + p2 ["twintig"] + p3 ["20"]); + v1.Add(p1[2] + p2 ["tachtig"] + p3 ["80"]); + + A(v1.GetSize() == 6); + A(v2.GetSize() == 2); + A(v3.GetSize() == 2); + A(v4.GetSize() == 4); + A(v5.GetSize() == 4); + + A(p3 (v1[2]) == (c4_String) "2"); + A(p3 (v4[0]) == (c4_String) "2"); + + A(p3 (v3[0]) == (c4_String) "1"); + A(p3 (v3[1]) == (c4_String) "11"); + + A(p3 (v5[0]) == (c4_String) "80"); + A(p3 (v5[1]) == (c4_String) "12"); + A(p3 (v5[2]) == (c4_String) "2"); + A(p3 (v5[3]) == (c4_String) "20"); + + v1[3] = p1[2] + p2 ["twaalf"] + p3 ["12+"]; + + A(p3 (v3[0]) == (c4_String) "1"); + A(p3 (v3[1]) == (c4_String) "11"); + + A(p3 (v1[3]) == (c4_String) "12+"); + A(p3 (v4[1]) == (c4_String) "12+"); + + A(p3 (v5[0]) == (c4_String) "80"); + A(p3 (v5[1]) == (c4_String) "12+"); + A(p3 (v5[2]) == (c4_String) "2"); + A(p3 (v5[3]) == (c4_String) "20"); + } E; + + B(n13, Project without, 0) // failed in 1.8.4 + { + c4_IntProp p1 ("p1"), p2 ("p2"); + c4_View v1; + + v1.Add(p1 [1] + p2 [2]); + int n1 = v1.NumProperties(); + A(n1 == 2); + + c4_View v2 = v1.ProjectWithout(p2); + int n2 = v2.NumProperties(); + A(n2 == 1); + } E; + +/* + B(n14, Add to reverse sorted, 0) + { + c4_IntProp p1 ("p1"), p2 ("p2"); + c4_View v1; + v1.Add(p1 [333] + p2 [1]); + v1.Add(p1 [345] + p2 [1]); + v1.Add(p1 [234] + p2 [1]); + v1.Add(p1 [123] + p2 [0]); + A(v1.GetSize() == 4); + c4_View v1a = v1.Select(p2 [1]); + A(v1a.GetSize() == 3); + c4_View v1b = v1a.SelectRange(p1 [100], p1 [999]); + A(v1b.GetSize() == 3); + c4_View v2 = v1b.SortOnReverse(p1, p1); + A(v2.GetSize() == 3); + A(p1 (v2[0]) == 345); + A(p1 (v2[1]) == 333); + A(p1 (v2[2]) == 234); + v1.Add(p1 [300] + p2 [1]); + A(v2.GetSize() == 4); + A(p1 (v2[0]) == 345); + A(p1 (v2[1]) == 333); + A(p1 (v2[2]) == 300); + A(p1 (v2[3]) == 234); + v1.Add(p1 [299] + p2 [1]); + A(v2.GetSize() == 5); + A(p1 (v2[0]) == 345); + A(p1 (v2[1]) == 333); + A(p1 (v2[2]) == 300); + A(p1 (v2[3]) == 299); + A(p1 (v2[4]) == 234); + } E; +*/ + // this failed in 2.4.8, reported by S. Selznick, 2002-11-22 + B(n14, Insert in non-mapped position, 0) W(n14a); + { + c4_IntProp p1 ("p1"); + c4_Storage s1 ("n14a", 1); + s1.SetStructure("a[p1:I]"); + c4_View v1 = s1.View("a"); + + static int intlist[] = { 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, -1 }; + for (int c = 0; -1 != intlist[c]; c++) + v1.Add(p1 [intlist[c]]); + + A(v1.GetSize() == 10); + c4_View v2 = v1.Select(p1 [1]); + A(v2.GetSize() == 3); + + v1.InsertAt(3, p1 [6]); + A(v1.GetSize() == 11); + A(v2.GetSize() == 3); + + v1.InsertAt(7, p1 [1]); + A(v1.GetSize() == 12); + A(v2.GetSize() == 4); + + s1.Commit(); + } D(n14a); R(n14a); E; +} |