~bibledit/bibledit/ubuntu-cloud

« back to all changes in this revision

Viewing changes to unittests/bibles.cpp

  • Committer: Teus Benschop
  • Date: 2022-08-30 18:42:32 UTC
  • Revision ID: teusjannette@gmail.com-20220830184232-a5bf5fkj14cqdx01
new upstream version

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
  Webserver_Request request;
46
46
  test_store_bible_data_safely_setup (&request, "");
47
47
  request.database_users ()->create ();
48
 
  request.session_logic ()->setUsername ("phpunit");
 
48
  request.session_logic ()->set_username ("phpunit");
49
49
  string usfm = R"(
50
50
\c 1
51
51
\p
70
70
    "\\v 4 Verse 4.\n"
71
71
    "\\v 5 Verse 5.";
72
72
    string explanation;
73
 
    string stored = usfm_safely_store_chapter (&request, "phpunit", 1, 1, data, explanation);
 
73
    string stored = filter::usfm::safely_store_chapter (&request, "phpunit", 1, 1, data, explanation);
74
74
    evaluate (__LINE__, __func__, string(), stored);
75
75
    evaluate (__LINE__, __func__, string(), explanation);
76
76
    string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
90
90
    "\\v 3 Verse 3.\n"
91
91
    "\\v 4 Verse 4.";
92
92
    string explanation;
93
 
    string stored = usfm_safely_store_chapter (&request, "phpunit", 1, 1, data, explanation);
 
93
    string stored = filter::usfm::safely_store_chapter (&request, "phpunit", 1, 1, data, explanation);
94
94
    evaluate (__LINE__, __func__, "", stored);
95
95
    evaluate (__LINE__, __func__, "", explanation);
96
96
    string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
108
108
    "\\v 2 Verse 2.\n"
109
109
    "\\v 3 Verse 3.\n";
110
110
    string explanation;
111
 
    string stored = usfm_safely_store_chapter (&request, "phpunit", 1, 1, data, explanation);
 
111
    string stored = filter::usfm::safely_store_chapter (&request, "phpunit", 1, 1, data, explanation);
112
112
    evaluate (__LINE__, __func__, "Text length differs too much", stored);
113
113
    evaluate (__LINE__, __func__, "The text was not saved for safety reasons. The length differs 50% from the existing text. Make fewer changes at a time and wait till the editor has saved the text. Or relax the restriction in the editing settings. See menu Settings - Preferences.", explanation);
114
114
    string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
127
127
    "\\v 2 Verse two two two two two two two.\n"
128
128
    "\\v 4 Verse 4.\n";
129
129
    string explanation;
130
 
    string stored = usfm_safely_store_chapter (&request, "phpunit", 1, 1, data, explanation);
 
130
    string stored = filter::usfm::safely_store_chapter (&request, "phpunit", 1, 1, data, explanation);
131
131
    evaluate (__LINE__, __func__, "Text content differs too much", stored);
132
132
    evaluate (__LINE__, __func__, "The text was not saved for safety reasons. The new text is 59% similar to the existing text. Make fewer changes at a time and wait till the editor has saved the text. Or relax the restriction in the editing settings. See menu Settings - Preferences.", explanation);
133
133
    string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
140
140
    test_store_bible_data_safely_setup (&request, usfm);
141
141
    string explanation;
142
142
    int currentId = request.database_bibles()->getChapterId ("phpunit", 1, 1);
143
 
    string stored = usfm_safely_store_chapter (&request, "phpunit", 1, 1, usfm, explanation);
 
143
    string stored = filter::usfm::safely_store_chapter (&request, "phpunit", 1, 1, usfm, explanation);
144
144
    evaluate (__LINE__, __func__, string(), stored);
145
145
    evaluate (__LINE__, __func__, string(), explanation);
146
146
    string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
158
158
      "\\c 1\n"
159
159
      "\\p\n";
160
160
      string explanation;
161
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 0, data, explanation, false);
 
161
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 0, data, explanation, false);
162
162
      evaluate (__LINE__, __func__, string(), stored);
163
163
      evaluate (__LINE__, __func__, string(), explanation);
164
164
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
170
170
      string data =
171
171
      "\\c 1\n";
172
172
      string explanation;
173
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 0, data, explanation, true);
 
173
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 0, data, explanation, true);
174
174
      evaluate (__LINE__, __func__, string(), stored);
175
175
      evaluate (__LINE__, __func__, string(), explanation);
176
176
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
187
187
      "\\c 1\n"
188
188
      "\\p xx\n";
189
189
      string explanation;
190
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 0, data, explanation, false);
 
190
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 0, data, explanation, false);
191
191
      evaluate (__LINE__, __func__, string(), stored);
192
192
      evaluate (__LINE__, __func__, string(), explanation);
193
193
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
200
200
      string data =
201
201
      "\\c 1x\n";
202
202
      string explanation;
203
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 0, data, explanation, true);
 
203
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 0, data, explanation, true);
204
204
      evaluate (__LINE__, __func__, string(), stored);
205
205
      evaluate (__LINE__, __func__, string(), explanation);
206
206
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
216
216
      test_store_bible_data_safely_setup (&request, usfm);
217
217
      string data = "\\v 2 Verse two two two two.\n\\p\n";
218
218
      string explanation;
219
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, false);
 
219
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, false);
220
220
      evaluate (__LINE__, __func__, string(), stored);
221
221
      evaluate (__LINE__, __func__, string(), explanation);
222
222
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
228
228
      test_store_bible_data_safely_setup (&request, usfm);
229
229
      string data = "\\v 2 Verse two.\n";
230
230
      string explanation;
231
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, true);
 
231
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, true);
232
232
      evaluate (__LINE__, __func__, string(), stored);
233
233
      evaluate (__LINE__, __func__, string(), explanation);
234
234
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
244
244
      test_store_bible_data_safely_setup (&request, usfm);
245
245
      string data = "\\v 3 Verse three.\n";
246
246
      string explanation;
247
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 3, data, explanation, false);
 
247
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 3, data, explanation, false);
248
248
      evaluate (__LINE__, __func__, string(), stored);
249
249
      evaluate (__LINE__, __func__, string(), explanation);
250
250
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
256
256
      test_store_bible_data_safely_setup (&request, usfm);
257
257
      string data = "\\p\n\\v 3 Verse three.\n";
258
258
      string explanation;
259
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 3, data, explanation, true);
 
259
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 3, data, explanation, true);
260
260
      evaluate (__LINE__, __func__, string(), stored);
261
261
      evaluate (__LINE__, __func__, string(), explanation);
262
262
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
272
272
      test_store_bible_data_safely_setup (&request, usfm);
273
273
      string data = "\\v 2 Verse 2.\n";
274
274
      string explanation;
275
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 1, data, explanation, false);
 
275
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 1, data, explanation, false);
276
276
      evaluate (__LINE__, __func__, "Verse mismatch", stored);
277
277
      evaluate (__LINE__, __func__, "The USFM contains verse(s) 2 while it wants to save to verse 1", explanation);
278
278
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
283
283
      test_store_bible_data_safely_setup (&request, usfm);
284
284
      string data = "\\v 2 Verse 2.\n";
285
285
      string explanation;
286
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 1, data, explanation, true);
 
286
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 1, data, explanation, true);
287
287
      evaluate (__LINE__, __func__, "Verse mismatch", stored);
288
288
      evaluate (__LINE__, __func__, "The USFM contains verse(s) 2 while it wants to save to verse 1", explanation);
289
289
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
302
302
      test_store_bible_data_safely_setup (&request, usfm);
303
303
      string data = "\\v 2 Verse two two two two two two two two two.\n\\p\n";
304
304
      string explanation;
305
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, quill);
 
305
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, quill);
306
306
      evaluate (__LINE__, __func__, true, stored.empty());
307
307
      evaluate (__LINE__, __func__, true, explanation.empty());
308
308
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
315
315
      test_store_bible_data_safely_setup (&request, usfm);
316
316
      string data = "\\v 2 Verse two two two two two two two two two.\n";
317
317
      string explanation;
318
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, quill);
 
318
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, quill);
319
319
      evaluate (__LINE__, __func__, true, stored.empty());
320
320
      evaluate (__LINE__, __func__, true, explanation.empty());
321
321
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
328
328
      test_store_bible_data_safely_setup (&request, usfm);
329
329
      string data = "\\v 2 two";
330
330
      string explanation;
331
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, quill);
 
331
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, quill);
332
332
      evaluate (__LINE__, __func__, "Text length differs too much", stored);
333
333
      evaluate (__LINE__, __func__, "The text was not saved for safety reasons. The length differs 78% from the existing text. Make fewer changes at a time and wait till the editor has saved the text. Or relax the restriction in the editing settings. See menu Settings - Preferences.", explanation);
334
334
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
340
340
      test_store_bible_data_safely_setup (&request, usfm);
341
341
      string data = "\\v 2 two";
342
342
      string explanation;
343
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, quill);
 
343
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, quill);
344
344
      evaluate (__LINE__, __func__, "Text length differs too much", stored);
345
345
      evaluate (__LINE__, __func__, "The text was not saved for safety reasons. The length differs 77% from the existing text. Make fewer changes at a time and wait till the editor has saved the text. Or relax the restriction in the editing settings. See menu Settings - Preferences.", explanation);
346
346
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
356
356
      request.database_config_user ()->setEditingAllowedDifferenceVerse (40);
357
357
      string data = "\\v 2 vERSE TWO TWO two two two two.\n";
358
358
      string explanation;
359
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, false);
 
359
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, false);
360
360
      evaluate (__LINE__, __func__, "Text content differs too much", stored);
361
361
      evaluate (__LINE__, __func__, "The text was not saved for safety reasons. The new text is 49% similar to the existing text. Make fewer changes at a time and wait till the editor has saved the text. Or relax the restriction in the editing settings. See menu Settings - Preferences.", explanation);
362
362
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
368
368
      request.database_config_user ()->setEditingAllowedDifferenceVerse (40);
369
369
      string data = "\\v 2 vERSE TWO TWO two two two two.\n";
370
370
      string explanation;
371
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, true);
 
371
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, true);
372
372
      evaluate (__LINE__, __func__, "Text content differs too much", stored);
373
373
      evaluate (__LINE__, __func__, "The text was not saved for safety reasons. The new text is 52% similar to the existing text. Make fewer changes at a time and wait till the editor has saved the text. Or relax the restriction in the editing settings. See menu Settings - Preferences.", explanation);
374
374
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
384
384
      request.database_config_user ()->setEditingAllowedDifferenceVerse (40);
385
385
      string data = "\\p Verse 2.\n";
386
386
      string explanation;
387
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, false);
 
387
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, false);
388
388
      evaluate (__LINE__, __func__, "Missing verse number", stored);
389
389
      evaluate (__LINE__, __func__, "The USFM contains no verse information", explanation);
390
390
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
396
396
      request.database_config_user ()->setEditingAllowedDifferenceVerse (40);
397
397
      string data = "\\p Verse 2.\n";
398
398
      string explanation;
399
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, true);
 
399
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, true);
400
400
      evaluate (__LINE__, __func__, "Missing verse number", stored);
401
401
      evaluate (__LINE__, __func__, "The USFM contains no verse information", explanation);
402
402
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
412
412
      request.database_config_user ()->setEditingAllowedDifferenceVerse (40);
413
413
      string data = "\\v 2 Verse 2.\n\\v 3 3";
414
414
      string explanation;
415
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, false);
 
415
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, false);
416
416
      evaluate (__LINE__, __func__, "Cannot overwrite another verse", stored);
417
417
      evaluate (__LINE__, __func__, "The USFM contains verse(s) 0 2 3 which would overwrite a fragment that contains verse(s) 0 2", explanation);
418
418
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
424
424
      request.database_config_user ()->setEditingAllowedDifferenceVerse (40);
425
425
      string data = "\\v 2 Verse 2.\n\\v 3 3";
426
426
      string explanation;
427
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, true);
 
427
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, true);
428
428
      evaluate (__LINE__, __func__, "Cannot overwrite another verse", stored);
429
429
      evaluate (__LINE__, __func__, "The USFM contains verse(s) 0 2 3 which would overwrite a fragment that contains verse(s) 0 2", explanation);
430
430
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
448
448
      test_store_bible_data_safely_setup (&request, usfm);
449
449
      string data = "\\v 2-3 Verse 2 and 3.\n\\p\n";
450
450
      string explanation;
451
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, false);
 
451
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, false);
452
452
      evaluate (__LINE__, __func__, "", stored);
453
453
      evaluate (__LINE__, __func__, "", explanation);
454
454
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
458
458
      test_store_bible_data_safely_setup (&request, usfm);
459
459
      string data = "\\v 2-3 Verse 2 and 3.\n";
460
460
      string explanation;
461
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, true);
 
461
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 2, data, explanation, true);
462
462
      evaluate (__LINE__, __func__, "", stored);
463
463
      evaluate (__LINE__, __func__, "", explanation);
464
464
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
472
472
      test_store_bible_data_safely_setup (&request, usfm);
473
473
      string data = "\\v 2-3 Verse 2 andx 3.\n\\p\n";
474
474
      string explanation;
475
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 3, data, explanation, false);
 
475
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 3, data, explanation, false);
476
476
      evaluate (__LINE__, __func__, "", stored);
477
477
      evaluate (__LINE__, __func__, "", explanation);
478
478
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
484
484
      test_store_bible_data_safely_setup (&request, usfm);
485
485
      string data = "\\v 2-3 Verse 2 andx 3.\n";
486
486
      string explanation;
487
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 3, data, explanation, true);
 
487
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 3, data, explanation, true);
488
488
      evaluate (__LINE__, __func__, "", stored);
489
489
      evaluate (__LINE__, __func__, "", explanation);
490
490
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
500
500
      test_store_bible_data_safely_setup (&request, usfm);
501
501
      string data = "\\v 4-5 Verse 4 andx 5.\n";
502
502
      string explanation;
503
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 4, data, explanation, false);
 
503
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 4, data, explanation, false);
504
504
      evaluate (__LINE__, __func__, "", stored);
505
505
      evaluate (__LINE__, __func__, "", explanation);
506
506
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
512
512
      test_store_bible_data_safely_setup (&request, usfm);
513
513
      string data = "\\p\n\\v 4-5 Verse 4 andx 5.\n";
514
514
      string explanation;
515
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 4, data, explanation, true);
 
515
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 4, data, explanation, true);
516
516
      evaluate (__LINE__, __func__, "", stored);
517
517
      evaluate (__LINE__, __func__, "", explanation);
518
518
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
528
528
      test_store_bible_data_safely_setup (&request, usfm);
529
529
      string data = "\\v 2-4 Verse 2 andx 3.\n";
530
530
      string explanation;
531
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 3, data, explanation, false);
 
531
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 3, data, explanation, false);
532
532
      evaluate (__LINE__, __func__, "Cannot overwrite another verse", stored);
533
533
      evaluate (__LINE__, __func__, "The USFM contains verse(s) 0 2 3 4 which would overwrite a fragment that contains verse(s) 0 2 3", explanation);
534
534
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);
539
539
      test_store_bible_data_safely_setup (&request, usfm);
540
540
      string data = "\\v 2-4 Verse 2 andx 3.\n";
541
541
      string explanation;
542
 
      string stored = usfm_safely_store_verse (&request, "phpunit", 1, 1, 3, data, explanation, true);
 
542
      string stored = filter::usfm::safely_store_verse (&request, "phpunit", 1, 1, 3, data, explanation, true);
543
543
      evaluate (__LINE__, __func__, "Cannot overwrite another verse", stored);
544
544
      evaluate (__LINE__, __func__, "The USFM contains verse(s) 0 2 3 4 which would overwrite a fragment that contains verse(s) 0 2 3", explanation);
545
545
      string result = request.database_bibles()->getChapter ("phpunit", 1, 1);