From e88eb1daf1baf28436560e9a00ae788dcd1656ad Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 24 Feb 2021 22:10:52 +0000 Subject: [PATCH] tests: fetch session document Signed-off-by: Ian Jackson --- apitest.rs | 1 + apitest/at-otter.rs | 25 +++++++++++++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/apitest.rs b/apitest.rs index 3c23c47a..bbf4ec3f 100644 --- a/apitest.rs +++ b/apitest.rs @@ -26,6 +26,7 @@ pub use num_derive::FromPrimitive; pub use parking_lot::{Mutex, MutexGuard}; pub use regex::{Captures, Regex}; pub use serde::{Serialize, Deserialize}; +pub use serde_json::json; pub use structopt::StructOpt; pub use strum::{EnumIter, EnumProperty, IntoEnumIterator, IntoStaticStr}; pub use void::Void; diff --git a/apitest/at-otter.rs b/apitest/at-otter.rs index 35d7182f..20d2d862 100644 --- a/apitest/at-otter.rs +++ b/apitest/at-otter.rs @@ -21,21 +21,30 @@ struct Player { url: String, } -impl Player { +impl Ctx { #[throws(AE)] - fn connect(&self) { - let resp = reqwest::blocking::get(&self.url)?; + fn connect_player(&self, player: &Player) { + let client = reqwest::blocking::Client::new(); + + let resp = client.get(&player.url).send()?; ensure_eq!(resp.status(), 200); let body = resp.text()?; let dom = scraper::Html::parse_document(&body); dbg!(&body, &dom); - let clid = dom + let ptoken = dom .select(&"#loading_token".try_into().unwrap()) .next().unwrap() - .value().attr("data-ptoken"); - dbg!(&clid); + .value().attr("data-ptoken") + .unwrap(); + dbg!(&ptoken); - + let resp = client.post(&self.ds.subst("@url@/_/session/Portrait")?) + .json(&json!({ "ptoken": ptoken })) + .send()?; + ensure_eq!(resp.status(), 200); + let body = resp.text()?; + let dom = scraper::Html::parse_document(&body); + dbg!(&body, &dom); } } @@ -55,7 +64,7 @@ impl Ctx { self.otter(&self.ds.ss("library-add @table@ wikimedia chess-blue-?")?)?; - self.alice.connect()?; + self.connect_player(&self.alice)?; } } -- 2.30.2