~ubuntu-branches/ubuntu/utopic/nepomuk-core/utopic

« back to all changes in this revision

Viewing changes to libnepomukcore/test/resourcetest.cpp

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2012-07-26 22:43:09 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20120726224309-pf2v1e78ee7uljjp
Tags: 4:4.9.0a-0ubuntu1
* Use direct build-depends versions rather than kde-sc-dev-latest
* New upstream release
* New symbols, rename libnepomukcore4 to libnepomukcore4abi and enable Debian ABI manager

Show diffs side-by-side

added added

removed removed

Lines of Context:
58
58
    Resource res( testiId );
59
59
    res.setProperty( QUrl("http://nepomuk.test.org/foo/bar"),  "foobar" );
60
60
 
61
 
    QUrl testiUri = res.resourceUri();
 
61
    QUrl testiUri = res.uri();
62
62
 
63
63
    QVERIFY( !testiUri.isEmpty() );
64
64
 
80
80
    QVERIFY( res.exists() );
81
81
    QVERIFY( res2.exists() );
82
82
 
83
 
    QVERIFY( ResourceManager::instance()->mainModel()->containsAnyStatement( Statement( res.resourceUri(), QUrl("http://nepomuk.test.org/foo/bar2"), Node(res2.resourceUri()) ) ) );
 
83
    QVERIFY( ResourceManager::instance()->mainModel()->containsAnyStatement( Statement( res.uri(), QUrl("http://nepomuk.test.org/foo/bar2"), Node(res2.uri()) ) ) );
84
84
 
85
85
    res2.remove();
86
86
 
87
87
    QVERIFY( res.exists() );
88
88
    QVERIFY( !res2.exists() );
89
89
 
90
 
    QVERIFY( !ResourceManager::instance()->mainModel()->containsAnyStatement( Statement( res.resourceUri(), QUrl("http://nepomuk.test.org/foo/bar2"), Node(res2.resourceUri()) ) ) );
 
90
    QVERIFY( !ResourceManager::instance()->mainModel()->containsAnyStatement( Statement( res.uri(), QUrl("http://nepomuk.test.org/foo/bar2"), Node(res2.uri()) ) ) );
91
91
 
92
92
    //
93
93
    // Now make sure the relation between id and URI has actually be removed
94
94
    //
95
95
    Resource res3( testiId );
96
 
    QVERIFY( res3.resourceUri() != testiUri );
 
96
    QVERIFY( res3.uri() != testiUri );
97
97
}
98
98
 
99
99
 
113
113
        r1.setProperty( QUrl("http://nepomuk.test.org/date"), QDate::currentDate() );
114
114
        r1.setProperty( QUrl("http://nepomuk.test.org/Resource"), r2 );
115
115
 
116
 
        r1Uri = r1.resourceUri();
117
 
        r2Uri = r2.resourceUri();
 
116
        r1Uri = r1.uri();
 
117
        r2Uri = r2.uri();
118
118
    }
119
119
 
120
120
    QTextStream s(stdout);
170
170
    QVERIFY( r1.property( p ).toNodeList().isEmpty() );
171
171
 
172
172
    QList<Soprano::Node> nodes =
173
 
        ResourceManager::instance()->mainModel()->listStatements(r1.resourceUri(), p, Soprano::Node()).iterateObjects().allNodes();
 
173
        ResourceManager::instance()->mainModel()->listStatements(r1.uri(), p, Soprano::Node()).iterateObjects().allNodes();
174
174
    QCOMPARE(nodes.count(), 0);
175
175
 
176
176
    r1.setProperty( p, 17 );
183
183
    QCOMPARE( r1.property( p ).toNodeList().count(), 1 );
184
184
 
185
185
    nodes =
186
 
        ResourceManager::instance()->mainModel()->listStatements(r1.resourceUri(), p, Soprano::Node()).iterateObjects().allNodes();
 
186
        ResourceManager::instance()->mainModel()->listStatements(r1.uri(), p, Soprano::Node()).iterateObjects().allNodes();
187
187
    QCOMPARE(nodes.count(), 1);
188
188
    QCOMPARE(nodes[0], Soprano::Node(Soprano::LiteralValue(18)));
189
189
 
199
199
    QVERIFY( r1.property( p ).toNodeList().isEmpty() );
200
200
 
201
201
    nodes =
202
 
        ResourceManager::instance()->mainModel()->listStatements(r1.resourceUri(), p, Soprano::Node()).iterateObjects().allNodes();
 
202
        ResourceManager::instance()->mainModel()->listStatements(r1.uri(), p, Soprano::Node()).iterateObjects().allNodes();
203
203
    QCOMPARE(nodes.count(), 0);
204
204
}
205
205
 
213
213
 
214
214
        QVERIFY( r1 == r2 );
215
215
 
216
 
        QVERIFY( r1.resourceUri() != QUrl("wurst") );
 
216
        QVERIFY( r1.uri() != QUrl("wurst") );
217
217
 
218
218
        r1.setProperty( QUrl("http://nepomuk.test.org/foo/bar"), "foobar" );
219
219
 
220
 
        theUri = r1.resourceUri();
 
220
        theUri = r1.uri();
221
221
 
222
222
        QList<Statement> sl
223
 
            = ResourceManager::instance()->mainModel()->listStatements( Statement( r1.resourceUri(), Node(), Node() ) ).allStatements();
 
223
            = ResourceManager::instance()->mainModel()->listStatements( Statement( r1.uri(), Node(), Node() ) ).allStatements();
224
224
 
225
225
        // rdf:type, nao:created, nao:lastModified, nao:identifier, and the property above
226
226
        QCOMPARE( sl.count(), 5 );
227
227
 
228
 
        QVERIFY( ResourceManager::instance()->mainModel()->containsAnyStatement( Statement( r1.resourceUri(),
 
228
        QVERIFY( ResourceManager::instance()->mainModel()->containsAnyStatement( Statement( r1.uri(),
229
229
                                                                                            NAO::identifier(),
230
230
                                                                                            LiteralValue( "wurst" ) ) ) );
231
231
    }
253
253
        QCOMPARE( rl.count(), 2 );
254
254
        QVERIFY( rl.contains( r1 ) && rl.contains( r2 ) );
255
255
 
256
 
        rl = ResourceManager::instance()->allResourcesOfType( r6.resourceType() );
 
256
        rl = ResourceManager::instance()->allResourcesOfType( r6.type() );
257
257
        QCOMPARE( rl.count(), 1 );
258
258
        QCOMPARE( rl.first(), r6 );
259
259
 
288
288
        QCOMPARE( rl.count(), 2 );
289
289
        QVERIFY( rl.contains( r1 ) && rl.contains( r2 ) );
290
290
 
291
 
        rl = ResourceManager::instance()->allResourcesOfType( r6.resourceType() );
 
291
        rl = ResourceManager::instance()->allResourcesOfType( r6.type() );
292
292
        QCOMPARE( rl.count(), 1 );
293
293
        QCOMPARE( rl.first(), r6 );
294
294
 
330
330
        fileRes.setRating( 4 );
331
331
 
332
332
        // make sure the nie:url is saved
333
 
        QVERIFY( ResourceManager::instance()->mainModel()->containsAnyStatement( fileRes.resourceUri(), Nepomuk2::Vocabulary::NIE::url(), KUrl(tmpFile1.fileName()) ) );
 
333
        QVERIFY( ResourceManager::instance()->mainModel()->containsAnyStatement( fileRes.uri(), Nepomuk2::Vocabulary::NIE::url(), KUrl(tmpFile1.fileName()) ) );
334
334
 
335
335
        // make sure a proper nepomuk:/ uri has been created
336
 
        QVERIFY( fileRes.resourceUri().scheme() == QLatin1String("nepomuk") );
 
336
        QVERIFY( fileRes.uri().scheme() == QLatin1String("nepomuk") );
337
337
 
338
338
        // make sure the local resource is reused with the file URL
339
339
        Resource fileRes2( KUrl(tmpFile1.fileName()) );
340
 
        QCOMPARE( fileRes.resourceUri(), fileRes2.resourceUri() );
 
340
        QCOMPARE( fileRes.uri(), fileRes2.uri() );
341
341
 
342
342
        // make sure the local resource is reused with the resource URI
343
 
        Resource fileRes3( fileRes.resourceUri() );
344
 
        QCOMPARE( fileRes.resourceUri(), fileRes3.resourceUri() );
 
343
        Resource fileRes3( fileRes.uri() );
 
344
        QCOMPARE( fileRes.uri(), fileRes3.uri() );
345
345
 
346
 
        tmpFile1ResUri = fileRes.resourceUri();
 
346
        tmpFile1ResUri = fileRes.uri();
347
347
 
348
348
        // make sure even the string constructor will find the resource again with
349
349
        Resource fileRes4( KUrl(tmpFile1ResUri).url() );
350
350
        fileRes4.setRating(4);
351
 
        QCOMPARE( fileRes4.resourceUri(), tmpFile1ResUri );
 
351
        QCOMPARE( fileRes4.uri(), tmpFile1ResUri );
352
352
 
353
353
        // make sure the resource is reused with the local file path
354
354
        Resource fileRes5( tmpFile1.fileName() );
355
355
        fileRes4.setRating(5);
356
 
        QCOMPARE( fileRes5.resourceUri(), tmpFile1ResUri );
 
356
        QCOMPARE( fileRes5.uri(), tmpFile1ResUri );
357
357
    }
358
358
 
359
359
    // clear cache to be sure we call ResourceData::determineUri
362
362
    {
363
363
        // verify that the resource in question is found again
364
364
        Resource fileRes1( KUrl(tmpFile1.fileName()) );
365
 
        QCOMPARE( tmpFile1ResUri, fileRes1.resourceUri() );
 
365
        QCOMPARE( tmpFile1ResUri, fileRes1.uri() );
366
366
 
367
367
        // make sure the local resource is reused with the resource URI
368
368
        Resource fileRes2( tmpFile1ResUri );
369
 
        QCOMPARE( tmpFile1ResUri, fileRes2.resourceUri() );
 
369
        QCOMPARE( tmpFile1ResUri, fileRes2.uri() );
370
370
 
371
371
        // create a second test file
372
372
        KTemporaryFile tmpFile2;
377
377
 
378
378
        Resource fileRes3( KUrl(tmpFile2.fileName()) );
379
379
        fileRes3.setRating( 4 );
380
 
        QCOMPARE( KUrl(fileRes3.resourceUri()), KUrl(tmpFile2.fileName()) );
 
380
        QCOMPARE( KUrl(fileRes3.uri()), KUrl(tmpFile2.fileName()) );
381
381
 
382
382
        // create a third test file
383
383
        KTemporaryFile tmpFile3;
387
387
        ResourceManager::instance()->mainModel()->addStatement( KUrl(tmpFile3.fileName()), Soprano::Vocabulary::NAO::rating(), Soprano::LiteralValue(4) );
388
388
 
389
389
        Resource fileRes4( KUrl(tmpFile3.fileName()) );
390
 
        QCOMPARE( KUrl(fileRes4.resourceUri()).url(), KUrl(tmpFile3.fileName()).url() );
 
390
        QCOMPARE( KUrl(fileRes4.uri()).url(), KUrl(tmpFile3.fileName()).url() );
391
391
 
392
392
        // make sure removing the resource results in us not reusing the URI
393
 
        QUrl fileRes1Uri = fileRes1.resourceUri();
 
393
        QUrl fileRes1Uri = fileRes1.uri();
394
394
        fileRes1.remove();
395
395
 
396
396
        Resource fileRes5( KUrl(tmpFile1.fileName()) );
397
 
        QVERIFY( fileRes1Uri != fileRes5.resourceUri() );
 
397
        QVERIFY( fileRes1Uri != fileRes5.uri() );
398
398
    }
399
399
 
400
400
    // clear cache to be sure we do not reuse the cache
413
413
        fileRes.setRating( 4 );
414
414
 
415
415
        // make sure the nie:url is saved
416
 
        QVERIFY( model->containsAnyStatement( fileRes.resourceUri(), Nepomuk2::Vocabulary::NIE::url(), KUrl(tmpFile1.fileName()) ) );
 
416
        QVERIFY( model->containsAnyStatement( fileRes.uri(), Nepomuk2::Vocabulary::NIE::url(), KUrl(tmpFile1.fileName()) ) );
417
417
 
418
418
        // make sure a proper nepomuk:/ uri has been created
419
 
        QVERIFY( fileRes.resourceUri().scheme() == QLatin1String("nepomuk") );
 
419
        QVERIFY( fileRes.uri().scheme() == QLatin1String("nepomuk") );
420
420
 
421
421
        // Remove the nie:url
422
422
        fileRes.removeProperty( Nepomuk2::Vocabulary::NIE::url() );
423
423
 
424
424
        Resource fileRes2( KUrl(tmpFile1.fileName()) );
425
 
        QVERIFY( fileRes.resourceUri() != fileRes2.resourceUri() );
 
425
        QVERIFY( fileRes.uri() != fileRes2.uri() );
426
426
 
427
427
        Resource r1( "res1" );
428
428
        r1.setProperty( QUrl("http://test/prop1"), 42 );
431
431
        Resource r2( "res1" );
432
432
        r2.setProperty( QUrl("http://test/prop1"), 46 );
433
433
 
434
 
        QVERIFY( r2.resourceUri() != r1.resourceUri() );
 
434
        QVERIFY( r2.uri() != r1.uri() );
435
435
        QVERIFY( r1.property(QUrl("http://test/prop1")) != r2.property(QUrl("http://test/prop1")) );
436
436
 
437
437
    }
443
443
        fileRes.setRating( 4 );
444
444
 
445
445
        // make sure the nie:url is saved
446
 
        QVERIFY( model->containsAnyStatement( fileRes.resourceUri(), Nepomuk2::Vocabulary::NIE::url(), KUrl(tmpFile.fileName()) ) );
 
446
        QVERIFY( model->containsAnyStatement( fileRes.uri(), Nepomuk2::Vocabulary::NIE::url(), KUrl(tmpFile.fileName()) ) );
447
447
 
448
448
        // make sure a proper nepomuk:/ uri has been created
449
 
        QVERIFY( fileRes.resourceUri().scheme() == QLatin1String("nepomuk") );
 
449
        QVERIFY( fileRes.uri().scheme() == QLatin1String("nepomuk") );
450
450
 
451
451
        // Add a different nie:url
452
452
        KTemporaryFile tmpFile2;
454
454
        fileRes.setProperty( Nepomuk2::Vocabulary::NIE::url(), KUrl(tmpFile2.fileName()) );
455
455
 
456
456
        // make sure the new nie:url is saved and the old one is gone
457
 
        QVERIFY( model->containsAnyStatement( fileRes.resourceUri(), Nepomuk2::Vocabulary::NIE::url(), KUrl(tmpFile2.fileName()) ) );
458
 
        QVERIFY( !model->containsAnyStatement( fileRes.resourceUri(), Nepomuk2::Vocabulary::NIE::url(), KUrl(tmpFile.fileName()) ) );
 
457
        QVERIFY( model->containsAnyStatement( fileRes.uri(), Nepomuk2::Vocabulary::NIE::url(), KUrl(tmpFile2.fileName()) ) );
 
458
        QVERIFY( !model->containsAnyStatement( fileRes.uri(), Nepomuk2::Vocabulary::NIE::url(), KUrl(tmpFile.fileName()) ) );
459
459
 
460
460
        // At this point the ResourceManager's kickOffUri's should contain
461
461
        // only tmpFile2 -> fileRes
462
462
 
463
463
        Resource fileRes2( KUrl(tmpFile.fileName()) );
464
464
        
465
 
        QVERIFY( fileRes.resourceUri() != fileRes2.resourceUri() );
 
465
        QVERIFY( fileRes.uri() != fileRes2.uri() );
466
466
 
467
467
        Resource fileRes3( KUrl(tmpFile2.fileName()) );
468
 
        QVERIFY( fileRes3.resourceUri() == fileRes.resourceUri() );
 
468
        QVERIFY( fileRes3.uri() == fileRes.uri() );
469
469
        
470
470
        Resource r1( "res1" );
471
471
        r1.setProperty( QUrl("http://test/prop1"), 42 );
475
475
        Resource r2( "res1" );
476
476
        r2.setProperty( QUrl("http://test/prop1"), 46 );
477
477
 
478
 
        QVERIFY( r2.resourceUri() != r1.resourceUri() );
 
478
        QVERIFY( r2.uri() != r1.uri() );
479
479
        QVERIFY( r1.property(QUrl("http://test/prop1")) != r2.property(QUrl("http://test/prop1")) );
480
480
 
481
481
        Resource r3( "foo" );
482
 
        QVERIFY( r3.resourceUri() == r1.resourceUri() );
 
482
        QVERIFY( r3.uri() == r1.uri() );
483
483
    }
484
484
 
485
485
}