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, json, .. }) => {
let error = serde_json::from_str::<serde_json::Value>(&json)
.unwrap_or_else(|e| panic!("invalid json {:?}: {}", json, 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 {}", json));
if tag != "no_permission" {
panic!("unexpected error kind in {:?}", json);
}
}
otherwise => panic!("wrong result: {:?}", otherwise),
}
}