chiark / gitweb /
bundles: Add wdt test to see that things show up in the UI
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 3 May 2021 17:33:05 +0000 (18:33 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 3 May 2021 17:33:05 +0000 (18:33 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
wdriver/wdriver.rs
wdriver/wdt-bundles.rs [new file with mode: 0644]

index 04cf6c3dc114af2c5fd4628765a7b87be5ed95cc..e6f25f77039b91c3d450cafe95ac3fefef632d9b 100644 (file)
@@ -936,3 +936,4 @@ fn main(){
 portmanteau_has!("wdt-altergame.rs", wdt_altergame);
 portmanteau_has!("wdt-hand.rs",      wdt_hand);
 portmanteau_has!("wdt-simple.rs",    wdt_simple);
+portmanteau_has!("wdt-bundles.rs",   wdt_bundles);
diff --git a/wdriver/wdt-bundles.rs b/wdriver/wdt-bundles.rs
new file mode 100644 (file)
index 0000000..4dce0ae
--- /dev/null
@@ -0,0 +1,48 @@
+// Copyright 2020-2021 Ian Jackson and contributors to Otter
+// SPDX-License-Identifier: AGPL-3.0-or-later
+// There is NO WARRANTY.
+
+use crate::*;
+
+struct Ctx {
+  su: Setup,
+  alice: Window,
+}
+usual_wanted_tests!{Ctx, su}
+
+impl Ctx {
+  #[throws(Explode)]
+  fn otter(&mut self, verb: &[&str], args: &[&str]) {
+    self.su.w(&self.alice)?.otter(verb, args)?
+  }
+}
+
+#[throws(AE)]
+fn tests(UsualSetup { su, alice, ..}: UsualSetup) {
+  let mut c = Ctx { su, alice };
+
+  test!(c, "bundle", {
+    let test_bundle = c.su.ds.example_bundle();
+    c.otter(&["upload-bundle"],&[&test_bundle])?;
+    let mut w = c.su.w(&c.alice)?;
+
+    let check = |w: &mut WindowGuard<'_>| Ok::<_,Explode>({
+      w.synch()?;
+      let bundle_id = w.find_element(By::ClassName("b_id"))?;
+      let html = bundle_id.inner_html()?;
+      assert_eq!(&html, "00000.zip");
+    });
+
+    check(&mut w)?;
+
+    let url = w.current_url()?;
+    w.get(url)?;
+    check(&mut w)?;
+
+  });
+
+  debug!("finishing");
+}
+
+#[throws(AE)]
+pub fn main() { as_usual(tests, module_path!())?; }