Skip to content

Refactor

Refactor #49

GitHub Actions / Test report succeeded Feb 3, 2024 in 0s

116 passed, 0 failed and 0 skipped

Tests passed successfully

✅ reports/test-results.json

123 tests were completed in 5s with 116 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
test/src/encoding_test.dart 4✅ 52ms
test/src/file_test.dart 5✅ 411ms
test/src/header_test.dart 3✅ 150ms
test/src/keypair_test.dart 1✅ 35ms
test/src/plugin_test.dart 1✅ 26ms
test/src/scrypt_test.dart 5✅ 60ms
test/src/stanza_test.dart 2✅ 141ms
test/src/stream_test.dart 4✅ 47ms
test/src/testkit/testkit_test.dart 85✅ 1s
test/src/x25519_test.dart 6✅ 92ms

✅ test/src/encoding_test.dart

✅ raw base64 MUST reject normal base64 with padding
✅ can decode unpadded base64
✅ can encode bytes to raw base64
✅ creates chunks from a list

✅ test/src/file_test.dart

 (setUpAll)
✅ encrypt
✅ decrypt
✅ encrypts and decrypts multiple chunks
✅ encrypts and decrypts with passphrase
✅ only one stanza is allowed when decrypting with a password

✅ test/src/header_test.dart

 (setUpAll)
✅ header
✅ parse header
✅ incorrect version

✅ test/src/keypair_test.dart

 (setUpAll)
✅ keypair to string

✅ test/src/plugin_test.dart

✅ Plugins can be added

✅ test/src/scrypt_test.dart

 (setUpAll)
✅ parse stanza
✅ MUST ignore if tag is not scrypt
✅ MUST reject if arguments length is not 3
✅ MUST reject if second argument is not 16 bytes
✅ MUST reject if body is not 32 bytes

✅ test/src/stanza_test.dart

 (setUpAll)
✅ create age recipient stanza
✅ parse age recipient stanza

✅ test/src/stream_test.dart

 (setUpAll)
✅ parses header
✅ parses complex header
✅ parses payload after header, removes newline
✅ mac is part of the header

✅ test/src/testkit/testkit_test.dart

testkit
  ✅ stanza_empty_last_line should succeed
  ✅ stanza_empty_body should succeed
  ✅ stream_empty_payload should succeed
  ✅ stream_last_chunk_full should succeed
  ✅ x25519_multiple_recipients should succeed
  ✅ x25519_grease should succeed
  ✅ stream_three_chunks should succeed
  ✅ scrypt should succeed
  ✅ stanza_valid_characters should succeed
  ✅ stream_last_chunk_full_second should succeed
  ✅ x25519 should succeed
  ✅ stream_two_chunks should succeed
  ✅ stream_short_nonce should fail
  ✅ hmac_no_space should fail
  ✅ scrypt_work_factor_wrong should fail
  ✅ scrypt_uppercase should fail
  ✅ stanza_base64_padding should fail
  ✅ stream_trailing_garbage_long should fail
  ✅ scrypt_extra_argument should fail
  ✅ x25519_low_order should fail
  ✅ version_unsupported should fail
  ✅ stanza_not_canonical should fail
  ✅ x25519_extra_argument should fail
  ✅ scrypt_work_factor_hex should fail
  ✅ scrypt_work_factor_23 should fail
  ✅ scrypt_double should fail
  ✅ stream_bad_tag_second_chunk should fail
  ✅ scrypt_work_factor_leading_garbage should fail
  ✅ stanza_no_arguments should fail
  ✅ scrypt_work_factor_leading_zero_decimal should fail
  ✅ stream_two_final_chunks should fail
  ✅ scrypt_no_match should fail
  ✅ scrypt_and_x25519 should fail
  ✅ stanza_spurious_cr should fail
  ✅ scrypt_work_factor_leading_zero_octal should fail
  ✅ scrypt_work_factor_negative should fail
  ✅ scrypt_work_factor_trailing_garbage should fail
  ✅ stanza_empty_argument should fail
  ✅ hmac_bad should fail
  ✅ scrypt_long_file_key should fail
  ✅ stream_no_final should fail
  ✅ hmac_trailing_space should fail
  ✅ stream_missing_tag should fail
  ✅ x25519_short_share should fail
  ✅ stanza_multiple_short_lines should fail
  ✅ scrypt_salt_long should fail
  ✅ header_crlf should fail
  ✅ scrypt_not_canonical_salt should fail
  ✅ stanza_long_line should fail
  ✅ stanza_missing_final_line should fail
  ✅ stanza_invalid_character should fail
  ✅ x25519_identity should fail
  ✅ hmac_extra_space should fail
  ✅ scrypt_salt_missing should fail
  ✅ stream_last_chunk_empty should fail
  ✅ stream_bad_tag_second_chunk_full should fail
  ✅ x25519_bad_tag should fail
  ✅ stanza_missing_body should fail
  ✅ stream_short_chunk should fail
  ✅ x25519_lowercase should fail
  ✅ x25519_long_file_key should fail
  ✅ scrypt_work_factor_zero should fail
  ✅ scrypt_work_factor_leading_plus should fail
  ✅ stream_no_final_two_chunks_full should fail
  ✅ scrypt_bad_tag should fail
  ✅ scrypt_work_factor_missing should fail
  ✅ scrypt_work_factor_overflow should fail
  ✅ hmac_garbage should fail
  ✅ x25519_not_canonical_body should fail
  ✅ stream_no_final_full should fail
  ✅ hmac_missing should fail
  ✅ stream_no_final_two_chunks should fail
  ✅ stream_bad_tag should fail
  ✅ scrypt_not_canonical_body should fail
  ✅ stream_no_chunks should fail
  ✅ hmac_not_canonical should fail
  ✅ stream_no_nonce should fail
  ✅ x25519_long_share should fail
  ✅ stream_short_second_chunk should fail
  ✅ x25519_not_canonical_share should fail
  ✅ scrypt_salt_short should fail
  ✅ stanza_bad_start should fail
  ✅ x25519_no_match should fail
  ✅ stream_trailing_garbage_short should fail
  ✅ hmac_truncated should fail

✅ test/src/x25519_test.dart

 (setUpAll)
✅ calculates recipient from identity
✅ MUST ignore if tag is not X25519
✅ MUST reject if arguments length is not 2
✅ MUST reject if second argument is not 32 bytes
✅ MUST reject if body is not 32 bytes
✅ can parse stanza if formed correctly