context("lsb")
test_that("basic use", {
img <- png::readPNG(system.file("img/Rlogo.png", package = "png"))
txt <- "hello from stegasaur"
img2 <- lsb_encode(txt, img)
expect_equal(lsb_decode(img2), txt)
path <- tempfile(fileext = ".png")
png::writePNG(img2, path)
img3 <- png::readPNG(path)
expect_equal(lsb_decode(img3), txt)
})
test_that("store object", {
img <- png::readPNG(system.file("img/Rlogo.png", package = "png"))
x <- 1:10
img2 <- lsb_encode(x, img)
expect_identical(lsb_decode(img2), x)
path <- tempfile(fileext = ".png")
png::writePNG(img2, path)
img3 <- png::readPNG(path)
expect_equal(lsb_decode(img3), x)
})
test_that("Require png", {
img <- png::readPNG(system.file("img/Rlogo.png", package = "png"))
expect_error(
encode("text", img, tempfile(fileext = ".jpg")),
"Format 'jpg' not supported")
expect_error(
decode(tempfile(fileext = ".jpg")),
"Format 'jpg' not supported")
})
test_that("Prevent truncation", {
img <- png::readPNG(system.file("img/Rlogo.png", package = "png"))
data <- rep(0, 10000)
expect_error(
lsb_encode(data, img),
"Overflow detected: [0-9]+ exceeds 65536 \\(2\\^16\\)")
expect_error(
lsb_encode(rep(0, 8000), img),
"Not enough space in image: message length \\(.+ bits\\) > image size")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.