diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-07-12 22:59:49 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-07-12 23:09:23 +0900 |
| commit | 41121e09f7cf6ed4a95797a80da63bca1d4884cd (patch) | |
| tree | b48e6a1c9603d92728652e7a4238f0d894a9aab0 /test/MetalinkParserControllerTest.cc | |
| parent | 59e63d956ee63d99202b67a32e8a277f3b04650d (diff) | |
Use std::unique_ptr for Metalink objects
Diffstat (limited to 'test/MetalinkParserControllerTest.cc')
| -rw-r--r-- | test/MetalinkParserControllerTest.cc | 168 |
1 files changed, 84 insertions, 84 deletions
diff --git a/test/MetalinkParserControllerTest.cc b/test/MetalinkParserControllerTest.cc index 50829cb9..a6c921d0 100644 --- a/test/MetalinkParserControllerTest.cc +++ b/test/MetalinkParserControllerTest.cc @@ -63,10 +63,12 @@ void MetalinkParserControllerTest::testEntryTransaction() ctrl.setLanguageOfEntry("ja_JP"); ctrl.setOSOfEntry("Linux"); ctrl.commitEntryTransaction(); + ctrl.newEntryTransaction(); + ctrl.cancelEntryTransaction(); { - std::shared_ptr<Metalinker> m = ctrl.getResult(); + auto m = ctrl.getResult(); CPPUNIT_ASSERT_EQUAL((size_t)1, m->getEntries().size()); - std::shared_ptr<MetalinkEntry> e = m->getEntries().front(); + auto& e = m->getEntries()[0]; CPPUNIT_ASSERT_EQUAL(std::string("aria2.tar.bz2"), e->file->getPath()); CPPUNIT_ASSERT_EQUAL((int64_t)(1024*1024LL), e->file->getLength()); CPPUNIT_ASSERT_EQUAL((int64_t)0, e->file->getOffset()); @@ -74,9 +76,6 @@ void MetalinkParserControllerTest::testEntryTransaction() CPPUNIT_ASSERT_EQUAL(std::string("ja_JP"), e->languages[0]); CPPUNIT_ASSERT_EQUAL(std::string("Linux"), e->oses[0]); } - ctrl.newEntryTransaction(); - ctrl.cancelEntryTransaction(); - CPPUNIT_ASSERT_EQUAL((size_t)1, ctrl.getResult()->getEntries().size()); } void MetalinkParserControllerTest::testResourceTransaction() @@ -90,25 +89,22 @@ void MetalinkParserControllerTest::testResourceTransaction() ctrl.setPriorityOfResource(100); ctrl.setMaxConnectionsOfResource(1); ctrl.commitEntryTransaction(); - { - std::shared_ptr<Metalinker> m = ctrl.getResult(); - CPPUNIT_ASSERT_EQUAL((size_t)1, m->getEntries().front()->resources.size()); - std::shared_ptr<MetalinkResource> res = m->getEntries().front()->resources[0]; - CPPUNIT_ASSERT_EQUAL(std::string("http://mirror/aria2.tar.bz2"), res->url); - CPPUNIT_ASSERT_EQUAL(MetalinkResource::TYPE_HTTP, res->type); - CPPUNIT_ASSERT_EQUAL(std::string("US"), res->location); - CPPUNIT_ASSERT_EQUAL(100, res->priority); - CPPUNIT_ASSERT_EQUAL(1, res->maxConnections); - } ctrl.newEntryTransaction(); ctrl.newResourceTransaction(); ctrl.cancelResourceTransaction(); ctrl.commitEntryTransaction(); { - std::shared_ptr<Metalinker> m = ctrl.getResult(); + auto m = ctrl.getResult(); CPPUNIT_ASSERT_EQUAL((size_t)2, m->getEntries().size()); CPPUNIT_ASSERT_EQUAL((size_t)1, m->getEntries()[0]->resources.size()); CPPUNIT_ASSERT_EQUAL((size_t)0, m->getEntries()[1]->resources.size()); + + auto& res = m->getEntries()[0]->resources[0]; + CPPUNIT_ASSERT_EQUAL(std::string("http://mirror/aria2.tar.bz2"), res->url); + CPPUNIT_ASSERT_EQUAL(MetalinkResource::TYPE_HTTP, res->type); + CPPUNIT_ASSERT_EQUAL(std::string("US"), res->location); + CPPUNIT_ASSERT_EQUAL(100, res->priority); + CPPUNIT_ASSERT_EQUAL(1, res->maxConnections); } } @@ -132,22 +128,20 @@ void MetalinkParserControllerTest::testResourceTransaction_withBaseUri() #endif // ENABLE_BITTORRENT ctrl.commitEntryTransaction(); { - std::shared_ptr<Metalinker> m = ctrl.getResult(); + auto m = ctrl.getResult(); CPPUNIT_ASSERT_EQUAL((size_t)1, m->getEntries()[0]->resources.size()); - std::shared_ptr<MetalinkResource> res = m->getEntries()[0]->resources[0]; + auto& res = m->getEntries()[0]->resources[0]; CPPUNIT_ASSERT_EQUAL(std::string("http://base/dir/aria2.tar.bz2"), res->url); CPPUNIT_ASSERT_EQUAL(MetalinkResource::TYPE_HTTP, res->type); #ifdef ENABLE_BITTORRENT CPPUNIT_ASSERT_EQUAL((size_t)2, m->getEntries()[0]->metaurls.size()); - std::shared_ptr<MetalinkMetaurl> metaurl = m->getEntries()[0]->metaurls[0]; CPPUNIT_ASSERT_EQUAL(std::string("http://base/meta/aria2.tar.bz2.torrent"), - metaurl->url); + m->getEntries()[0]->metaurls[0]->url); - metaurl = m->getEntries()[0]->metaurls[1]; CPPUNIT_ASSERT_EQUAL(std::string("magnet:?xt=urn:btih:248d0a1cd08284299de78d5c1ed359bb46717d8c"), - metaurl->url); + m->getEntries()[0]->metaurls[1]->url); #endif // ENABLE_BITTORRENT } } @@ -163,30 +157,26 @@ void MetalinkParserControllerTest::testMetaurlTransaction() ctrl.setNameOfMetaurl("mybirthdaycake"); ctrl.commitEntryTransaction(); #ifdef ENABLE_BITTORRENT - { - std::shared_ptr<Metalinker> m = ctrl.getResult(); - CPPUNIT_ASSERT_EQUAL((size_t)1, m->getEntries().size()); - CPPUNIT_ASSERT_EQUAL((size_t)1, m->getEntries()[0]->metaurls.size()); - std::shared_ptr<MetalinkMetaurl> metaurl = m->getEntries()[0]->metaurls[0]; - CPPUNIT_ASSERT_EQUAL(std::string("http://example.org/chocolate.torrent"), - metaurl->url); - CPPUNIT_ASSERT_EQUAL(std::string("torrent"), metaurl->mediatype); - CPPUNIT_ASSERT_EQUAL(std::string("mybirthdaycake"), metaurl->name); - CPPUNIT_ASSERT_EQUAL(999, metaurl->priority); - } ctrl.newEntryTransaction(); ctrl.newMetaurlTransaction(); ctrl.cancelMetaurlTransaction(); ctrl.commitEntryTransaction(); { - std::shared_ptr<Metalinker> m = ctrl.getResult(); - CPPUNIT_ASSERT_EQUAL((size_t)2, ctrl.getResult()->getEntries().size()); + auto m = ctrl.getResult(); + CPPUNIT_ASSERT_EQUAL((size_t)2, m->getEntries().size()); CPPUNIT_ASSERT_EQUAL((size_t)1, m->getEntries()[0]->metaurls.size()); CPPUNIT_ASSERT_EQUAL((size_t)0, m->getEntries()[1]->metaurls.size()); + + auto& metaurl = m->getEntries()[0]->metaurls[0]; + CPPUNIT_ASSERT_EQUAL(std::string("http://example.org/chocolate.torrent"), + metaurl->url); + CPPUNIT_ASSERT_EQUAL(std::string("torrent"), metaurl->mediatype); + CPPUNIT_ASSERT_EQUAL(std::string("mybirthdaycake"), metaurl->name); + CPPUNIT_ASSERT_EQUAL(999, metaurl->priority); } #else // !ENABLE_BITTORRENT { - std::shared_ptr<Metalinker> m = ctrl.getResult(); + auto m = ctrl.getResult(); CPPUNIT_ASSERT_EQUAL((size_t)1, m->getEntries().size()); CPPUNIT_ASSERT_EQUAL((size_t)0, m->getEntries()[0]->metaurls.size()); } @@ -202,25 +192,28 @@ void MetalinkParserControllerTest::testChecksumTransaction() ctrl.setTypeOfChecksum("md5"); ctrl.setHashOfChecksum("acbd18db4cc2f85cedef654fccc4a4d8"); ctrl.commitEntryTransaction(); - { - std::shared_ptr<Metalinker> m = ctrl.getResult(); - std::shared_ptr<Checksum> md = m->getEntries().front()->checksum; - CPPUNIT_ASSERT_EQUAL(std::string("md5"), md->getHashType()); - CPPUNIT_ASSERT_EQUAL(std::string("acbd18db4cc2f85cedef654fccc4a4d8"), - util::toHex(md->getDigest())); - } + ctrl.newEntryTransaction(); ctrl.newChecksumTransaction(); ctrl.setTypeOfChecksum("md5"); ctrl.setHashOfChecksum("badhash"); ctrl.commitEntryTransaction(); - CPPUNIT_ASSERT(!ctrl.getResult()->getEntries()[1]->checksum); ctrl.newEntryTransaction(); ctrl.newChecksumTransaction(); ctrl.cancelChecksumTransaction(); ctrl.commitEntryTransaction(); - CPPUNIT_ASSERT(!ctrl.getResult()->getEntries()[2]->checksum); + { + auto m = ctrl.getResult(); + auto& md = m->getEntries()[0]->checksum; + CPPUNIT_ASSERT_EQUAL(std::string("md5"), md->getHashType()); + CPPUNIT_ASSERT_EQUAL(std::string("acbd18db4cc2f85cedef654fccc4a4d8"), + util::toHex(md->getDigest())); + + CPPUNIT_ASSERT(!m->getEntries()[1]->checksum); + + CPPUNIT_ASSERT(!m->getEntries()[2]->checksum); + } } void MetalinkParserControllerTest::testChunkChecksumTransaction() @@ -236,9 +229,21 @@ void MetalinkParserControllerTest::testChunkChecksumTransaction() ctrl.addHashOfChunkChecksum(2, "2cbd18db4cc2f85cedef654fccc4a4d8"); ctrl.addHashOfChunkChecksum(5, "5cbd18db4cc2f85cedef654fccc4a4d8"); ctrl.commitEntryTransaction(); + + ctrl.newEntryTransaction(); + ctrl.newChunkChecksumTransaction(); + ctrl.setTypeOfChunkChecksum("md5"); + ctrl.setLengthOfChunkChecksum(256*1024); + ctrl.addHashOfChunkChecksum(1, "badhash"); + ctrl.commitEntryTransaction(); + + ctrl.newEntryTransaction(); + ctrl.newChunkChecksumTransaction(); + ctrl.cancelChunkChecksumTransaction(); + ctrl.commitEntryTransaction(); { - std::shared_ptr<Metalinker> m = ctrl.getResult(); - std::shared_ptr<ChunkChecksum> md = m->getEntries().front()->chunkChecksum; + auto m = ctrl.getResult(); + auto& md = m->getEntries()[0]->chunkChecksum; CPPUNIT_ASSERT_EQUAL(std::string("md5"), md->getHashType()); CPPUNIT_ASSERT_EQUAL(256*1024, md->getPieceLength()); CPPUNIT_ASSERT_EQUAL((size_t)5, md->countPieceHash()); @@ -252,20 +257,11 @@ void MetalinkParserControllerTest::testChunkChecksumTransaction() md->getPieceHashes()[3]); CPPUNIT_ASSERT_EQUAL(std::string("5cbd18db4cc2f85cedef654fccc4a4d8"), md->getPieceHashes()[4]); - } - ctrl.newEntryTransaction(); - ctrl.newChunkChecksumTransaction(); - ctrl.setTypeOfChunkChecksum("md5"); - ctrl.setLengthOfChunkChecksum(256*1024); - ctrl.addHashOfChunkChecksum(1, "badhash"); - ctrl.commitEntryTransaction(); - CPPUNIT_ASSERT(!ctrl.getResult()->getEntries()[1]->chunkChecksum); - ctrl.newEntryTransaction(); - ctrl.newChunkChecksumTransaction(); - ctrl.cancelChunkChecksumTransaction(); - ctrl.commitEntryTransaction(); - CPPUNIT_ASSERT(!ctrl.getResult()->getEntries()[2]->chunkChecksum); + CPPUNIT_ASSERT(!m->getEntries()[1]->chunkChecksum); + + CPPUNIT_ASSERT(!m->getEntries()[2]->chunkChecksum); + } } void MetalinkParserControllerTest::testChunkChecksumTransactionV4() @@ -280,9 +276,22 @@ void MetalinkParserControllerTest::testChunkChecksumTransactionV4() ctrl.addHashOfChunkChecksumV4("9413ee70957a09d55704123687478e07f18c7b29"); ctrl.addHashOfChunkChecksumV4("44213f9f4d59b557314fadcd233232eebcac8012"); ctrl.commitEntryTransaction(); + + ctrl.newEntryTransaction(); + ctrl.newChunkChecksumTransactionV4(); + ctrl.setTypeOfChunkChecksumV4("sha-1"); + ctrl.setLengthOfChunkChecksumV4(256*1024); + ctrl.addHashOfChunkChecksumV4("5bd9f7248df0f3a6a86ab6c95f48787d546efa14"); + ctrl.addHashOfChunkChecksumV4("badhash"); + ctrl.commitEntryTransaction(); + + ctrl.newEntryTransaction(); + ctrl.newChunkChecksumTransactionV4(); + ctrl.cancelChunkChecksumTransactionV4(); + ctrl.commitEntryTransaction(); { - std::shared_ptr<Metalinker> m = ctrl.getResult(); - std::shared_ptr<ChunkChecksum> md = m->getEntries().front()->chunkChecksum; + auto m = ctrl.getResult(); + auto& md = m->getEntries()[0]->chunkChecksum; CPPUNIT_ASSERT_EQUAL(std::string("sha-1"), md->getHashType()); CPPUNIT_ASSERT_EQUAL(256*1024, md->getPieceLength()); CPPUNIT_ASSERT_EQUAL((size_t)3, md->countPieceHash()); @@ -295,21 +304,11 @@ void MetalinkParserControllerTest::testChunkChecksumTransactionV4() CPPUNIT_ASSERT_EQUAL (std::string("44213f9f4d59b557314fadcd233232eebcac8012"), util::toHex(md->getPieceHashes()[2])); - } - ctrl.newEntryTransaction(); - ctrl.newChunkChecksumTransactionV4(); - ctrl.setTypeOfChunkChecksumV4("sha-1"); - ctrl.setLengthOfChunkChecksumV4(256*1024); - ctrl.addHashOfChunkChecksumV4("5bd9f7248df0f3a6a86ab6c95f48787d546efa14"); - ctrl.addHashOfChunkChecksumV4("badhash"); - ctrl.commitEntryTransaction(); - CPPUNIT_ASSERT(!ctrl.getResult()->getEntries()[1]->chunkChecksum); - ctrl.newEntryTransaction(); - ctrl.newChunkChecksumTransactionV4(); - ctrl.cancelChunkChecksumTransactionV4(); - ctrl.commitEntryTransaction(); - CPPUNIT_ASSERT(!ctrl.getResult()->getEntries()[2]->chunkChecksum); + CPPUNIT_ASSERT(!m->getEntries()[1]->chunkChecksum); + + CPPUNIT_ASSERT(!m->getEntries()[2]->chunkChecksum); + } } #endif // ENABLE_MESSAGE_DIGEST @@ -334,19 +333,20 @@ void MetalinkParserControllerTest::testSignatureTransaction() // commitEntryTransaction also commits signature transaction. ctrl.commitEntryTransaction(); - std::shared_ptr<Metalinker> m = ctrl.getResult(); - CPPUNIT_ASSERT_EQUAL((size_t)1, m->getEntries().size()); - std::shared_ptr<Signature> sig = m->getEntries().front()->getSignature(); - CPPUNIT_ASSERT_EQUAL(std::string("pgp"), sig->getType()); - CPPUNIT_ASSERT_EQUAL(std::string("aria2.sig"), sig->getFile()); - CPPUNIT_ASSERT_EQUAL(pgpSignature, sig->getBody()); - // See when signature transaction is canceled: ctrl.newEntryTransaction(); ctrl.newSignatureTransaction(); ctrl.cancelSignatureTransaction(); ctrl.commitEntryTransaction(); - CPPUNIT_ASSERT(!ctrl.getResult()->getEntries()[1]->getSignature()); + + auto m = ctrl.getResult(); + CPPUNIT_ASSERT_EQUAL((size_t)2, m->getEntries().size()); + auto& sig = m->getEntries()[0]->getSignature(); + CPPUNIT_ASSERT_EQUAL(std::string("pgp"), sig->getType()); + CPPUNIT_ASSERT_EQUAL(std::string("aria2.sig"), sig->getFile()); + CPPUNIT_ASSERT_EQUAL(pgpSignature, sig->getBody()); + + CPPUNIT_ASSERT(!m->getEntries()[1]->getSignature()); } } // namespace aria2 |
