| 
									
										
										
										
											2017-04-27 20:21:27 +02:00
										 |  |  | // SPDX-License-Identifier: GPL-2.0
 | 
					
						
							| 
									
										
										
										
											2017-02-21 10:27:31 +01:00
										 |  |  | #include "testpicture.h"
 | 
					
						
							| 
									
										
										
										
											2020-10-17 12:32:22 +02:00
										 |  |  | #include "core/device.h"
 | 
					
						
							| 
									
										
										
										
											2020-05-01 13:43:52 +02:00
										 |  |  | #include "core/dive.h"
 | 
					
						
							| 
									
										
										
										
											2019-03-04 23:20:29 +01:00
										 |  |  | #include "core/divesite.h"
 | 
					
						
							| 
									
										
										
										
											2019-08-05 19:41:15 +02:00
										 |  |  | #include "core/errorhelper.h"
 | 
					
						
							| 
									
										
										
										
											2020-04-10 09:42:14 +02:00
										 |  |  | #include "core/picture.h"
 | 
					
						
							| 
									
										
										
										
											2019-05-31 16:09:14 +02:00
										 |  |  | #include "core/trip.h"
 | 
					
						
							| 
									
										
										
										
											2018-07-25 12:39:04 -07:00
										 |  |  | #include "core/file.h"
 | 
					
						
							| 
									
										
										
										
											2021-04-16 06:47:51 -07:00
										 |  |  | #include "core/pref.h"
 | 
					
						
							| 
									
										
										
										
											2017-02-21 10:27:31 +01:00
										 |  |  | #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); | 
					
						
							| 
									
										
										
										
											2021-04-16 06:47:51 -07:00
										 |  |  | 	prefs.cloud_base_url = strdup(default_prefs.cloud_base_url); | 
					
						
							| 
									
										
										
										
											2017-02-21 10:27:31 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-18 14:57:42 +01:00
										 |  |  | #define PIC1_NAME "/dives/images/wreck.jpg"
 | 
					
						
							|  |  |  | #define PIC2_NAME "/dives/images/data_after_EOI.jpg"
 | 
					
						
							|  |  |  | #define PIC1_HASH "929ad9499b7ae7a9e39ef63eb6c239604ac2adfa"
 | 
					
						
							|  |  |  | #define PIC2_HASH "fa8bd48f8f24017a81e1204f52300bd98b43d4a7"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-21 10:27:31 +01:00
										 |  |  | void TestPicture::addPicture() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2020-04-19 16:48:53 +02:00
										 |  |  | 	struct dive *dive, *dive1, *dive2; | 
					
						
							| 
									
										
										
										
											2017-05-06 15:36:29 +02:00
										 |  |  | 	struct picture *pic1, *pic2; | 
					
						
							| 
									
										
										
										
											2017-02-21 10:27:31 +01:00
										 |  |  | 	verbose = 1; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-17 12:32:22 +02:00
										 |  |  | 	QCOMPARE(parse_file(SUBSURFACE_TEST_DATA "/dives/test44.xml", &dive_table, &trip_table, &dive_site_table, &device_table, &filter_preset_table), 0); | 
					
						
							| 
									
										
										
										
											2017-02-21 10:27:31 +01:00
										 |  |  | 	dive = get_dive(0); | 
					
						
							| 
									
										
										
										
											2018-12-11 22:30:57 +01:00
										 |  |  | 	// Pictures will be added to selected dives
 | 
					
						
							|  |  |  | 	dive->selected = true; | 
					
						
							| 
									
										
										
										
											2017-02-21 10:27:31 +01:00
										 |  |  | 	QVERIFY(dive != NULL); | 
					
						
							|  |  |  | 	// So far no picture in dive
 | 
					
						
							| 
									
										
										
										
											2020-04-11 17:41:56 +02:00
										 |  |  | 	QVERIFY(dive->pictures.nr == 0); | 
					
						
							| 
									
										
										
										
											2017-05-06 15:36:29 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-19 16:48:53 +02:00
										 |  |  | 	pic1 = create_picture(SUBSURFACE_TEST_DATA "/dives/images/wreck.jpg", 0, false, &dive1); | 
					
						
							|  |  |  | 	pic2 = create_picture(SUBSURFACE_TEST_DATA "/dives/images/data_after_EOI.jpg", 0, false, &dive2); | 
					
						
							|  |  |  | 	QVERIFY(pic1 != NULL); | 
					
						
							|  |  |  | 	QVERIFY(pic2 != NULL); | 
					
						
							|  |  |  | 	QVERIFY(dive1 == dive); | 
					
						
							|  |  |  | 	QVERIFY(dive2 == dive); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	add_picture(&dive->pictures, *pic1); | 
					
						
							|  |  |  | 	add_picture(&dive->pictures, *pic2); | 
					
						
							|  |  |  | 	free(pic1); | 
					
						
							|  |  |  | 	free(pic2); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// Now there are two pictures
 | 
					
						
							| 
									
										
										
										
											2020-04-11 17:41:56 +02:00
										 |  |  | 	QVERIFY(dive->pictures.nr == 2); | 
					
						
							|  |  |  | 	pic1 = &dive->pictures.pictures[0]; | 
					
						
							|  |  |  | 	pic2 = &dive->pictures.pictures[1]; | 
					
						
							| 
									
										
										
										
											2017-05-06 15:36:29 +02:00
										 |  |  | 	// 1st appearing at time 21:01
 | 
					
						
							|  |  |  | 	// 2nd appearing at time 22:01
 | 
					
						
							|  |  |  | 	QVERIFY(pic1->offset.seconds == 1261); | 
					
						
							| 
									
										
										
										
											2018-10-20 14:12:15 -04:00
										 |  |  | 	QVERIFY(pic1->location.lat.udeg == 47934500); | 
					
						
							|  |  |  | 	QVERIFY(pic1->location.lon.udeg == 11334500); | 
					
						
							| 
									
										
										
										
											2017-05-06 15:36:29 +02:00
										 |  |  | 	QVERIFY(pic2->offset.seconds == 1321); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-02 18:03:03 +02:00
										 |  |  | 	learnPictureFilename(pic1->filename, PIC1_NAME); | 
					
						
							|  |  |  | 	learnPictureFilename(pic2->filename, PIC2_NAME); | 
					
						
							| 
									
										
										
										
											2018-02-18 16:22:34 +01:00
										 |  |  | 	QCOMPARE(localFilePath(pic1->filename), QString(PIC1_NAME)); | 
					
						
							|  |  |  | 	QCOMPARE(localFilePath(pic2->filename), QString(PIC2_NAME)); | 
					
						
							| 
									
										
										
										
											2017-02-21 10:27:31 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QTEST_GUILESS_MAIN(TestPicture) |