test_that("end event", {
done <- NULL
do <- function() {
p1 <- http_get(http$url("/get"))
p2 <- p1$then(function() done <<- c(done, "done"))
p1$event_emitter$listen_on("end", function(...) {
done <<- c(done, "end")
})
p2
}
synchronise(do())
expect_equal(done, c("end", "done"))
})
test_that("data event", {
skip_on_cran()
chunks <- NULL
called <- 0L
do <- function() {
p1 <- http_get(http$url("/drip?duration=1&numbytes=10"))
p1$event_emitter$listen_on("data", function(bytes) {
chunks <<- c(chunks, list(bytes))
})
p1$event_emitter$listen_on("data", function(bytes) {
called <<- called + 1L
})
p1
}
# there is an extra zero-length chunk currently, but let's not
# rely on that
synchronise(do())
expect_true(length(chunks) >= 10)
expect_equal(length(unlist(chunks)), 10)
expect_true(called >= 10)
})
test_that("multiple end events", {
done <- NULL
do <- function() {
p1 <- http_get(http$url("/get"))
p2 <- p1$then(function() done <<- c(done, "done"))
p1$event_emitter$listen_on("end", function(...) {
done <<- c(done, "end1")
})
p1$event_emitter$listen_on("end", function(...) {
done <<- c(done, "end2")
})
p2
}
synchronise(do())
expect_equal(done, c("end1", "end2", "done"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.