mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
learnHash() was always called in conjunction with add_hash(). The pattern was that a local filename and a hash were connected in the hash-to-filename and the filename-to-hash maps. Then, the original picture-filename or url were registered in the filename-to-hash map. This commit changes learnHash() to take three parameters (original-filename, local-filename and hash) and do all of the above. The new code is simpler because no dummy picture struct has to be generated in DiveListView::loadImageFromURL(). The tests were extended to check for all hash<->filename associations. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
62 lines
2 KiB
C++
62 lines
2 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#include "testpicture.h"
|
|
#include "core/dive.h"
|
|
#include "core/file.h"
|
|
#include "core/divelist.h"
|
|
#include <QString>
|
|
#include <core/qthelper.h>
|
|
|
|
void TestPicture::initTestCase()
|
|
{
|
|
/* we need to manually tell that the resource exists, because we are using it as library. */
|
|
Q_INIT_RESOURCE(subsurface);
|
|
}
|
|
|
|
#define PIC1_NAME "/dives/images/wreck.jpg"
|
|
#define PIC2_NAME "/dives/images/data_after_EOI.jpg"
|
|
#define PIC1_HASH "929ad9499b7ae7a9e39ef63eb6c239604ac2adfa"
|
|
#define PIC2_HASH "fa8bd48f8f24017a81e1204f52300bd98b43d4a7"
|
|
|
|
void TestPicture::addPicture()
|
|
{
|
|
struct dive *dive;
|
|
struct picture *pic1, *pic2;
|
|
verbose = 1;
|
|
|
|
QCOMPARE(parse_file(SUBSURFACE_TEST_DATA "/dives/test44.xml"), 0);
|
|
dive = get_dive(0);
|
|
QVERIFY(dive != NULL);
|
|
pic1 = dive->picture_list;
|
|
// So far no picture in dive
|
|
QVERIFY(pic1 == NULL);
|
|
|
|
dive_create_picture(dive, SUBSURFACE_TEST_DATA "/dives/images/wreck.jpg", 0, false);
|
|
dive_create_picture(dive, SUBSURFACE_TEST_DATA "/dives/images/data_after_EOI.jpg", 0, false);
|
|
pic1 = dive->picture_list;
|
|
pic2 = pic1->next;
|
|
// Now there are two picture2
|
|
QVERIFY(pic1 != NULL);
|
|
QVERIFY(pic2 != NULL);
|
|
// 1st appearing at time 21:01
|
|
// 2nd appearing at time 22:01
|
|
QVERIFY(pic1->offset.seconds == 1261);
|
|
QVERIFY(pic1->latitude.udeg == 47934500);
|
|
QVERIFY(pic1->longitude.udeg == 11334500);
|
|
QVERIFY(pic2->offset.seconds == 1321);
|
|
|
|
QVERIFY(pic1->hash == NULL);
|
|
QVERIFY(pic2->hash == NULL);
|
|
QByteArray hash1 = hashFile(localFilePath(pic1->filename));
|
|
QByteArray hash2 = hashFile(localFilePath(pic2->filename));
|
|
learnHash(pic1->filename, PIC1_NAME, hash1);
|
|
learnHash(pic2->filename, PIC2_NAME, hash2);
|
|
QCOMPARE(hashstring(pic1->filename), PIC1_HASH);
|
|
QCOMPARE(hashstring(pic2->filename), PIC2_HASH);
|
|
QCOMPARE(hashstring(PIC1_NAME), PIC1_HASH);
|
|
QCOMPARE(hashstring(PIC2_NAME), PIC2_HASH);
|
|
QCOMPARE(fileFromHash(PIC1_HASH), QString(PIC1_NAME));
|
|
QCOMPARE(fileFromHash(PIC2_HASH), QString(PIC2_NAME));
|
|
}
|
|
|
|
|
|
QTEST_GUILESS_MAIN(TestPicture)
|