| 55 | import org.openqa.selenium.json.TypeToken; |
| 56 | |
| 57 | public class Script implements Closeable { |
| 58 | private final Set<String> browsingContextIds; |
| 59 | |
| 60 | private static final Json JSON = new Json(); |
| 61 | |
| 62 | private final BiDi bidi; |
| 63 | |
| 64 | private static final Function<JsonInput, EvaluateResult> evaluateResultMapper = |
| 65 | jsonInput -> createEvaluateResult(jsonInput.readMap()); |
| 66 | |
| 67 | private static final Function<JsonInput, List<RealmInfo>> realmInfoMapper = |
| 68 | jsonInput -> { |
| 69 | Object realms = jsonInput.readMapElement("realms"); |
| 70 | try (StringReader reader = new StringReader(JSON.toJson(realms)); |
| 71 | JsonInput input = JSON.newInput(reader)) { |
| 72 | return input.readNonNull(new TypeToken<List<RealmInfo>>() {}.getType()); |
| 73 | } |
| 74 | }; |
| 75 | |
| 76 | private static final Event<Message> messageEvent = |
| 77 | new Event<>( |
| 78 | "script.message", |
| 79 | params -> { |
| 80 | try (StringReader reader = new StringReader(JSON.toJson(params)); |
| 81 | JsonInput input = JSON.newInput(reader)) { |
| 82 | return input.readNonNull(Message.class); |
| 83 | } |
| 84 | }); |
| 85 | |
| 86 | private static final Event<RealmInfo> realmCreated = |
| 87 | new Event<>( |
| 88 | "script.realmCreated", |
| 89 | params -> { |
| 90 | try (StringReader reader = new StringReader(JSON.toJson(params)); |
| 91 | JsonInput input = JSON.newInput(reader)) { |
| 92 | return input.readNonNull(RealmInfo.class); |
| 93 | } |
| 94 | }); |
| 95 | |
| 96 | private static final Event<RealmInfo> realmDestroyed = |
| 97 | new Event<>( |
| 98 | "script.realmDestroyed", |
| 99 | params -> { |
| 100 | try (StringReader reader = new StringReader(JSON.toJson(params)); |
| 101 | JsonInput input = JSON.newInput(reader)) { |
| 102 | return input.readNonNull(RealmInfo.class); |
| 103 | } |
| 104 | }); |
| 105 | |
| 106 | public Script(WebDriver driver) { |
| 107 | this(new HashSet<>(), driver); |
| 108 | } |
| 109 | |
| 110 | public Script(String browsingContextId, WebDriver driver) { |
| 111 | this(Collections.singleton(Require.nonNull("Browsing context id", browsingContextId)), driver); |
| 112 | } |
| 113 | |
| 114 | public Script(Set<String> browsingContextIds, WebDriver driver) { |
nothing calls this directly
no test coverage detected