selenium_webdriver/
safarioptions.rs1pub struct SafariOptions{
5 pub (crate) base_string: String,
6}
7impl SafariOptions{
8 pub fn new()->Self{
9 SafariOptions{
10 base_string:String::new()
11 }
12 }
13 pub fn enable_automatic_inspection(&mut self)->&mut Self{
15 if self.base_string.contains("Inspection"){panic!("The automaticInspection is already enabled!");}
16 let text = r#""safari:automaticInspection":true"#;
17 update_string(&mut self.base_string,text);
18 self
19 }
20 pub fn enable_automatic_profiling(&mut self)->&mut Self{
22 if self.base_string.contains("Profiling"){panic!("The automaticProfiling is already enabled!");}
23 let text = r#""safari:automaticProfiling":true"#;
24 update_string(&mut self.base_string,text);
25 self
26 }
27 pub fn enable_diagnose(&mut self)->&mut Self{
29 if self.base_string.contains("diagnose"){panic!("The diagnostics are already enabled!");}
30 let text = r#""safari:diagnose":true"#;
31 update_string(&mut self.base_string,text);
32 self
33 }
34 pub fn enable_simulator(&mut self)->&mut Self{
36 if self.base_string.contains("Simulator"){panic!("The iOS simulation is already enabled!");}
37 let text = r#""safari:useSimulator":true"#;
38 update_string(&mut self.base_string,text);
39 self
40 }
41}
42fn update_string(st: &mut String,text:&str){
44 let len = st.len();
45 if len>0{
46 st.push(',');
47 st.push_str(text);
48 }else{
49 st.push_str(text);
50 }
51}
52
53mod saf_gen{
54 use super::*;
55 #[test]
56 fn saf_base_str() {
57 let mut saf = SafariOptions::new();
58 saf.enable_simulator().enable_automatic_inspection().enable_automatic_profiling().enable_diagnose();
59 println!("{}",saf.base_string);
60 assert!(saf.base_string.contains("safari:diagnose")&&
61 saf.base_string.contains("safari:automaticInspection")&&
62 saf.base_string.contains("safari:automaticProfiling")&&
63 saf.base_string.contains("safari:useSimulator"));
64 }
65 #[test]
66 fn name() {
67 let mut saf = SafariOptions::new();
68 saf.enable_simulator();
69 println!("{}",saf.base_string);
70 }
71 #[test]
72 #[should_panic]
73 fn saf_double_add_sim() {
74 let mut saf = SafariOptions::new();
75 saf.enable_simulator().enable_simulator();
76 }
77}