hgcacheproxymodel/tsrc/unit/test_hgcacheproxydatamodel.cpp
changeset 20 a60f8b6b1d32
parent 7 5ebec3429918
--- a/hgcacheproxymodel/tsrc/unit/test_hgcacheproxydatamodel.cpp	Fri Sep 17 15:55:58 2010 +0300
+++ b/hgcacheproxymodel/tsrc/unit/test_hgcacheproxydatamodel.cpp	Wed Oct 06 14:53:41 2010 +0300
@@ -1414,6 +1414,81 @@
 
 }
 
+void TestCacheProxy::testCP_IsCached()
+{
+    cp = new HgCacheProxyModel();
+    dph = new DataProviderHelper(1000);
+    cp->setDataProvider(dph);
+    
+    QModelIndex idx = cp->index(0, 0);
+    QVariant res = cp->data(idx, Qt::DisplayRole); //this will move buffer to 0-119
+    int begin = 0;
+    int end = 120;
+    int size = dph->getCount();
+    for (int i=0; i<size; i++){
+        QVERIFY2((dph->isCached(i))==((i>=begin)&& (i<end)), QString("begin:%1 end:%2 size:%3 i:%4").arg(begin).arg(end).arg(size).arg(i).toLatin1().data() );
+    }
+    
+    idx = cp->index(50, 0);
+    cp->data(idx, Qt::DisplayRole); //don't move buffer yet
+    for (int i=0; i<size; i++){
+        QVERIFY2((dph->isCached(i))==((i>=begin)&& (i<end)), QString("begin:%1 end:%2 size:%3 i:%4").arg(begin).arg(end).arg(size).arg(i).toLatin1().data() );
+    }
+
+    idx = cp->index(89, 0);//don't move buffer yet
+    cp->data(idx, Qt::DisplayRole);
+    for (int i=0; i<size; i++){
+        QVERIFY2((dph->isCached(i))==((i>=begin)&& (i<end)), QString("begin:%1 end:%2 size:%3 i:%4").arg(begin).arg(end).arg(size).arg(i).toLatin1().data() );
+    }
+    
+    idx = cp->index(100, 0); //now move buffer
+    cp->data(idx, Qt::DisplayRole);
+    begin = 40;
+    end = 160;
+    for (int i=0; i<size; i++){
+        QVERIFY2((dph->isCached(i))==((i>=begin)&& (i<end)), QString("begin:%1 end:%2 size:%3 i:%4").arg(begin).arg(end).arg(size).arg(i).toLatin1().data() );
+    }
+
+    idx = cp->index(500, 0); //move buffer
+    cp->data(idx, Qt::DisplayRole);
+    begin = 440;
+    end = 560;
+    for (int i=0; i<size; i++){
+        QVERIFY2((dph->isCached(i))==((i>=begin)&& (i<end)), QString("begin:%1 end:%2 size:%3 i:%4").arg(begin).arg(end).arg(size).arg(i).toLatin1().data() );
+    }
+
+    idx = cp->index(980, 0); //move buffer
+    cp->data(idx, Qt::DisplayRole);
+    begin = 880;
+    end = 1000;
+    for (int i=0; i<size; i++){
+        QVERIFY2((dph->isCached(i))==((i>=begin)&& (i<end)), QString("begin:%1 end:%2 size:%3 i:%4").arg(begin).arg(end).arg(size).arg(i).toLatin1().data() );
+    }
+
+    idx = cp->index(920, 0); //move buffer
+    cp->data(idx, Qt::DisplayRole);
+    begin = 880;
+    end = 1000;
+    for (int i=0; i<size; i++){
+        QVERIFY2((dph->isCached(i))==((i>=begin)&& (i<end)), QString("begin:%1 end:%2 size:%3 i:%4").arg(begin).arg(end).arg(size).arg(i).toLatin1().data() );
+    }
+    
+    idx = cp->index(890, 0); //move buffer
+    cp->data(idx, Qt::DisplayRole);
+    begin = 830;
+    end = 950;
+    for (int i=0; i<size; i++){
+        QVERIFY2((dph->isCached(i))==((i>=begin)&& (i<end)), QString("begin:%1 end:%2 size:%3 i:%4").arg(begin).arg(end).arg(size).arg(i).toLatin1().data() );
+    }
+    
+    idx = cp->index(10, 0); //move buffer
+    cp->data(idx, Qt::DisplayRole);
+    begin = 0;
+    end = 120;
+    for (int i=0; i<size; i++){
+        QVERIFY2((dph->isCached(i))==((i>=begin)&& (i<end)), QString("begin:%1 end:%2 size:%3 i:%4").arg(begin).arg(end).arg(size).arg(i).toLatin1().data() );
+    }
+}
 
 #ifdef _CACHEPROXYDATAMODEL_UNITTEST_LOG_TO_C
     int main (int argc, char* argv[]) 
@@ -1436,6 +1511,7 @@
                 if ( !file.exists(s) ){
                     file.mkpath(s);
                 }
+                break;
             }
         }