use dropbox_sdk::common::PathRoot;
use dropbox_sdk::default_client::UserAuthDefaultClient;
use dropbox_sdk::files::{self, ListFolderArg};
#[test]
#[ignore] fn invalid_path_root() {
let auth = dropbox_sdk::oauth2::get_auth_from_env_or_prompt();
let mut client = UserAuthDefaultClient::new(auth);
client.set_path_root(&PathRoot::NamespaceId("1".to_owned()));
match files::list_folder(&client, &ListFolderArg::new("/".to_owned())) {
Err(dropbox_sdk::Error::BadRequest(msg))
if msg.contains("Path root is not supported for sandbox app") => {}
Err(dropbox_sdk::Error::UnexpectedHttpError {
code: 422,
response,
..
}) => {
let error = serde_json::from_str::<serde_json::Value>(&response)
.unwrap_or_else(|e| panic!("invalid json {:?}: {}", response, e));
let tag = error
.as_object()
.and_then(|map| map.get("error"))
.and_then(|v| v.as_object())
.and_then(|map| map.get(".tag"))
.and_then(|v| v.as_str())
.unwrap_or_else(|| panic!("got a weird error {}", response));
if tag != "no_permission" {
panic!("unexpected error kind in {:?}", response);
}
}
otherwise => panic!("wrong result: {:?}", otherwise),
}
}