test_that("messages and message work", {
skip_if_no_token()
msgs <- gm_messages()
expect_s3_class(msgs, "gmail_messages")
ids <- gm_id(msgs)
expect_true(length(ids) > 0)
msg <- gm_message(ids[[1]])
expect_equal(gm_id(msg), ids[[1]])
expect_true(nzchar(gm_to(msg)))
expect_true(nzchar(gm_from(msg)))
expect_true(nzchar(gm_date(msg)))
expect_true(nzchar(gm_subject(msg)))
expect_true(nzchar(gm_body(msg)))
})
test_that("messages and message work", {
skip_if_no_token()
msgs <- gm_messages()
expect_s3_class(msgs, "gmail_messages")
ids <- gm_id(msgs)
expect_true(length(ids) > 0)
msg <- gm_message(ids[[1]])
expect_equal(gm_id(msg), ids[[1]])
expect_true(nzchar(gm_to(msg)))
expect_true(nzchar(gm_from(msg)))
expect_true(nzchar(gm_date(msg)))
expect_true(nzchar(gm_subject(msg)))
expect_true(nzchar(gm_body(msg)))
})
test_that("gm_import_message() works", {
skip_if_no_token()
msg_out <- gm_mime(
From = "you@me.com",
To = "any@one.com",
Subject = "hello from gm_import_message()",
body = "how are you doing?"
)
res <- gm_import_message(msg_out, label_ids = NULL)
new_id <- gm_id(res)
# even after successful message import, the "standard email delivery scanning
# and classification" that comes with `users.messages.import` can take
# several minutes
# therefore, the new message can't be addressed immediately
# that applies to getting it and to deleting it
# for now, I'm just going to comment out the code we wish we could run
# on.exit(gm_delete_message(new_id))
expect_type(new_id, "character")
# msg <- gm_message(new_id)
# expect_equal(gm_id(msg), new_id)
# expect_equal(gm_to(msg), "any@one.com")
# expect_equal(gm_from(msg), "you@me.com")
# expect_equal(gm_subject(msg), "hello")
# expect_equal(gm_body(msg), "how are you doing?\r\n")
})
test_that("insert_message, modify_message, trash_message and untrash_message work", {
skip_if_no_token()
new_id <- gm_id(gm_insert_message(
gm_mime(From = "you@me.com", To = "any@one.com", Subject = "hello", body = "how are you doing?"),
label_ids = NULL
))
msg <- gm_message(new_id)
expect_equal(gm_id(msg), new_id)
expect_equal(gm_to(msg), "any@one.com")
expect_equal(gm_from(msg), "you@me.com")
expect_equal(gm_subject(msg), "hello")
expect_equal(gm_body(msg), "how are you doing?\r\n")
expect_equal(msg$labelIds[[1]], NULL)
# now modify the labels on the message to put it in the inbox
gm_modify_message(new_id, add_labels = "INBOX")
msg2 <- gm_message(new_id)
expect_equal(msg2$labelIds[[1]], "INBOX")
# now trash the message
gm_trash_message(new_id)
msg3 <- gm_message(new_id)
expect_equal(msg3$labelIds[[1]], "TRASH")
# now untrash the message, this does not restore the labels, but removes the trash label
gm_untrash_message(new_id)
msg4 <- gm_message(new_id)
expect_equal(msg4$labelIds[[1]], NULL)
gm_delete_message(new_id)
expect_error(gm_message(new_id), "404", class = "gmailr_error")
})
test_that("send_message works", {
skip_if_no_token()
msg <- gm_mime(
From = gm_default_email(),
To = gm_default_email(),
Subject = "hello myself",
body = "how are you doing? I am doing well!"
)
sent_id <- gm_id(gm_send_message(msg))
msg1 <- gm_message(sent_id)
expect_true("SENT" %in% msg1$labelIds)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.