Nothing
test_that("api() returns endpoints", {
skip_cloud_tests()
res <- api()
expect_true(length(res) > 1)
expect_true(all(c("plots", "grids", "folders") %in% names(res)))
})
test_that("Can search with white-space", {
skip_cloud_tests()
res <- api("search?q=overdose drugs")
expect_true(length(res) > 1)
})
test_that("Changing a filename works", {
skip_cloud_tests()
id <- plotly:::new_id()
f <- api("files/cpsievert:14680", "PATCH", list(filename = id))
expect_equivalent(f$filename, id)
})
test_that("Downloading plots works", {
skip_cloud_tests()
# https://plot.ly/~cpsievert/200
p <- api_download_plot(200, "cpsievert")
expect_is(p, "htmlwidget")
expect_is(p, "plotly")
l <- plotly_build(p)$x
expect_length(l$data, 1)
# This file is a grid, not a plot https://plot.ly/~cpsievert/14681
expect_error(
api_download_plot(14681, "cpsievert"), "grid"
)
})
test_that("Downloading grids works", {
skip_cloud_tests()
g <- api_download_grid(14681, "cpsievert")
expect_is(g, "api_file")
expect_is(
tibble::as_tibble(g$preview), "data.frame"
)
# This file is a plot, not a grid https://plot.ly/~cpsievert/14681
expect_error(
api_download_grid(200, "cpsievert"), "plot"
)
})
test_that("Creating produces a new file by default", {
skip_cloud_tests()
expect_new <- function(obj) {
old <- api("folders/home?user=cpsievert")
new_obj <- api_create(obj)
Sys.sleep(3)
new <- api("folders/home?user=cpsievert")
n <- if (plotly:::is.plot(new_obj)) 2 else 1
expect_equivalent(old$children$count + n, new$children$count)
}
expect_new(mtcars)
# even if plot has multiple traces, only one grid should be created
p1 <- plot_ly(mtcars, x = ~mpg, y = ~wt)
p2 <- add_markers(p1, color = ~factor(cyl))
p3 <- add_markers(p1, color = ~factor(cyl), frame = ~factor(vs))
expect_new(p1)
expect_new(p2)
expect_new(p3)
})
test_that("Can overwrite a grid", {
skip_cloud_tests()
id <- new_id()
m <- api_create(mtcars, id)
m2 <- api_create(palmerpenguins::penguins, id)
expect_true(identical(m$embed_url, m2$embed_url))
expect_false(identical(m$cols, m2$cols))
})
test_that("Can overwrite a plot", {
skip_cloud_tests()
id <- new_id()
p <- plot_ly()
m <- api_create(p, id)
m2 <- api_create(layout(p, title = "test"), id)
expect_true(identical(m$embed_url, m2$embed_url))
expect_false(identical(m$figure$layout$title, m2$figure$layout$title))
})
test_that("Can create plots with non-trivial src attributes", {
skip_cloud_tests()
expect_srcified <- function(x) {
expect_length(strsplit(x, ":")[[1]], 3)
}
expect_not_srcified <- function(x) {
expect_true(is.null(x))
}
# src-ifies data arrays, but not arrayOk of length 1
p <- plot_ly(x = 1:10, y = 1:10, marker = list(color = "red"))
res <- api_create(p)
trace <- res$figure$data[[1]]
expect_srcified(trace$xsrc)
expect_srcified(trace$ysrc)
expect_true(trace$marker$color == "red")
# can src-ify data[i].marker.color
p <- plot_ly(x = 1:10, y = 1:10, color = 1:10)
res <- api_create(p)
trace <- res$figure$data[[1]]
expect_srcified(trace$marker$colorsrc)
# can src-ify frames[i].data[i].marker.color
res <- p %>%
add_markers(frame = rep(1:2, 5)) %>%
api_create()
trace <- res$figure$frames[[1]]$data[[1]]
expect_srcified(trace$marker$colorsrc)
# doesn't src-ify layout arrays (layout.xaxis.tickvals)
res <- api_create(ggplot() + geom_bar(aes(1:10)))
expect_not_srcified(res$figure$layout$xaxis$tickvalssrc)
})
test_that("filename supports names with paths included ", {
skip_cloud_tests()
p <- plot_ly(mtcars, x = ~wt, y = ~vs)
filename <- "directory/awesome"
# trash the file if it already exists
file <- api_lookup_file(filename)
if (is.file(file)) {
endpt <- sprintf("files/%s/trash", file$fid)
res <- api(endpt, "POST")
}
f <- api_create(p, filename = filename)
expect_match(f$filename, "awesome")
expect_true(f$parented)
})
test_that("requests made by a user who doesn't exist error a 404", {
skip_cloud_tests()
expect_error({
get_figure("klmadslfjdfljdsf", 0)
}, ".*404.*")
})
test_that("requests made to retrieve a figure that doesn't exist returns a 404", {
skip_cloud_tests()
expect_error({
get_figure("get_test_user", 18324823)
}, ".*404.*")
})
test_that("requests made to retrieve some elses private file errors", {
skip_cloud_tests()
expect_error(get_figure("get_test_user", 1))
})
test_that("retrieving a public figure ... works.", {
skip_cloud_tests()
fig <- get_figure("get_test_user", 0)
# get the data behind the hash
p <- plotly_build(fig)$x
expect_equivalent(p$data[[1]]$x, c("1", "2", "3"))
})
test_that("can add traces to a subplot figure", {
skip_cloud_tests()
fig <- get_figure('chelsea_lyn', 6366)
p <- add_lines(fig, x = c(1, 2, 3), y = c(4, 2, 4))
expect_equivalent(
length(plotly_build(fig)$x$data) + 1,
length(plotly_build(p)$x$data)
)
})
test_that("posting a hidden plot returns a secret key", {
skip_cloud_tests()
res <- api_create(plot_ly(), sharing = "secret")
expect_true(res$share_key_enabled)
expect_true(nchar(res$share_key) > 1)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.