test_that("ISO base media is diagnosed before decoding low-ratio binary bytes", { prefix <- as.raw(c(0, 0, 0, 32, 102, 116, 121, 112, 105, 115, 111, 109, 0, 0, 2, 0, 105, 115, 111, 109, 105, 115, 111, 50, 97, 118, 99, 49, 109, 112, 52, 49)) bytes <- c(prefix, as.raw(rep(255, 8192))) path <- tempfile(fileext = ".txt") on.exit(unlink(path), add = TRUE) writeBin(bytes, path) ratios <- appusage_byte_ratios(bytes) expect_lt(ratios$nul_byte_ratio, 0.01) expect_lt(ratios$control_byte_ratio, 0.20) expect_error(rawToChar(bytes), "embedded nul") result <- appusage_source_preflight(path) expect_identical(result$status, "binary_signature") expect_identical(result$failure_family, "source_binary") expect_identical(result$binary_signature, "iso_base_media") expect_identical(result$lines, character()) expect_equal(result$nul_byte_ratio, ratios$nul_byte_ratio) expect_equal(result$control_byte_ratio, ratios$control_byte_ratio) expect_identical(detect_appusage_type(path), "unknown") output <- tempfile("appusage-media-preflight-") on.exit(unlink(output, recursive = TRUE), add = TRUE) summary <- read_appusage_batch(path, ids = "media", output_dir = output, project_name = "Synthetic", project_id = "media", progress = FALSE) expect_identical(summary$status, "error") expect_identical(summary$failure_family, "source_binary") expect_identical(summary$preflight_status, "binary_signature") expect_identical(summary$binary_signature, "iso_base_media") expect_equal(summary$retry_attempt, 0L) expect_true(is.na(summary$data_file)) expect_true(file.exists(summary$metadata_file)) metadata <- jsonlite::read_json(summary$metadata_file, simplifyVector = TRUE) expect_identical(metadata$source$preflight$binary_signature, "iso_base_media") expect_identical(metadata$source$preflight$failure_family, "source_binary") }) test_that("ftyp text and incomplete box claims do not create media signatures", { expect_true(is.na(appusage_binary_signature(charToRaw("ordinary ftyp text")))) expect_true(is.na(appusage_binary_signature(charToRaw("2024ftyp ordinary text")))) expect_true(is.na(appusage_binary_signature(raw()))) expect_true(is.na(appusage_binary_signature(charToRaw("ftyp")))) expect_true(is.na(appusage_binary_signature(c(as.raw(c(0,0,0,8)), charToRaw("ftyp"))))) expect_true(is.na(appusage_binary_signature(c(as.raw(c(0,0,0,32)), charToRaw("ftypisom"))))) path <- tempfile(fileext = ".txt") on.exit(unlink(path), add = TRUE) writeLines("2024ftyp ordinary text", path) result <- appusage_source_preflight(path) expect_identical(result$status, "unknown_content") expect_identical(result$failure_family, "source_unknown_content") })