mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 18:23:23 +00:00
Test for basic image handling
This tests adding image files to dives including hashing and evaluating exif data. Signed-off-by: Robert C. Helling <helling@atdotde.de>
This commit is contained in:
parent
dbd99f706e
commit
c4976b505a
4 changed files with 87 additions and 0 deletions
28
dives/test44.xml
Normal file
28
dives/test44.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<divelog program='subsurface' version='3'>
|
||||
<settings>
|
||||
<divecomputerid model='Suunto Vyper' deviceid='7fffffff' serial='00522075' firmware='0.0.33'/>
|
||||
<divecomputerid model='Suunto Vyper' deviceid='e9237b0a' nickname='Suunto Vyper (e9237b0a)'/>
|
||||
<autogroup state='1' />
|
||||
</settings>
|
||||
<divesites>
|
||||
<site uuid='47b3e28c' gps='47.934500 11.334500'/>
|
||||
</divesites>
|
||||
<dives>
|
||||
<trip date='2012-01-08' time='15:30:03'>
|
||||
<dive number='1' divesiteid='47b3e28c' date='2012-01-08' time='15:30:03' duration='46:06 min'>
|
||||
<notes>Loading the image wreck.jpg should result in a picutre at 21:01. </notes>
|
||||
<cylinder size='24.0 l' workpressure='232.0 bar' description='D12 232 bar' />
|
||||
<divecomputer model='manually added dive' date='2014-01-09' time='14:22:03'>
|
||||
<depth max='15.0 m' mean='13.698 m' />
|
||||
<sample time='0:00 min' depth='0.0 m' />
|
||||
<sample time='0:50 min' depth='15.0 m' />
|
||||
<sample time='1:00 min' depth='15.0 m' />
|
||||
<sample time='40:00 min' depth='15.0 m' />
|
||||
<sample time='42:00 min' depth='5.0 m' />
|
||||
<sample time='45:00 min' depth='5.0 m' />
|
||||
<sample time='46:06 min' depth='0.0 m' />
|
||||
</divecomputer>
|
||||
</dive>
|
||||
</trip>
|
||||
</dives>
|
||||
</divelog>
|
|
@ -20,6 +20,8 @@ TEST(TestDiveSiteDuplication testdivesiteduplication.cpp)
|
|||
TEST(TestRenumber testrenumber.cpp)
|
||||
TEST(TestGitStorage testgitstorage.cpp)
|
||||
TEST(TestPreferences testpreferences.cpp)
|
||||
TEST(TestPicture testpicture.cpp)
|
||||
|
||||
|
||||
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}
|
||||
DEPENDS
|
||||
|
@ -32,4 +34,5 @@ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}
|
|||
TestDiveSiteDuplication
|
||||
TestPreferences
|
||||
TestRenumber
|
||||
TestPicture
|
||||
)
|
||||
|
|
43
tests/testpicture.cpp
Normal file
43
tests/testpicture.cpp
Normal file
|
@ -0,0 +1,43 @@
|
|||
#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);
|
||||
}
|
||||
|
||||
void TestPicture::addPicture()
|
||||
{
|
||||
struct dive *dive;
|
||||
struct picture *pic;
|
||||
verbose = 1;
|
||||
|
||||
QCOMPARE(parse_file(SUBSURFACE_SOURCE "/dives/test44.xml"), 0);
|
||||
dive = get_dive(0);
|
||||
QVERIFY(dive != NULL);
|
||||
pic = dive->picture_list;
|
||||
// So far no picture in dive
|
||||
QVERIFY(pic == NULL);
|
||||
|
||||
dive_create_picture(dive, SUBSURFACE_SOURCE "/wreck.jpg", 0, false);
|
||||
pic = dive->picture_list;
|
||||
// Now there is a picture
|
||||
QVERIFY(pic != NULL);
|
||||
// Appearing at time 21:01
|
||||
QVERIFY(pic->offset.seconds == 1261);
|
||||
QVERIFY(pic->latitude.udeg == 47934500);
|
||||
QVERIFY(pic->longitude.udeg == 11334500);
|
||||
|
||||
QVERIFY(pic->hash == NULL);
|
||||
learnHash(pic, hashFile(localFilePath(pic->filename)));
|
||||
QCOMPARE(pic->hash, "929ad9499b7ae7a9e39ef63eb6c239604ac2adfa");
|
||||
|
||||
}
|
||||
|
||||
|
||||
QTEST_GUILESS_MAIN(TestPicture)
|
13
tests/testpicture.h
Normal file
13
tests/testpicture.h
Normal file
|
@ -0,0 +1,13 @@
|
|||
#ifndef TESTPICTURE_H
|
||||
#define TESTPICTURE_H
|
||||
|
||||
#include <QtTest>
|
||||
|
||||
class TestPicture : public QObject{
|
||||
Q_OBJECT
|
||||
private slots:
|
||||
void initTestCase();
|
||||
void addPicture();
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Add table
Reference in a new issue