Example usage for org.openqa.selenium ImmutableCapabilities ImmutableCapabilities

List of usage examples for org.openqa.selenium ImmutableCapabilities ImmutableCapabilities

Introduction

In this page you can find the example usage for org.openqa.selenium ImmutableCapabilities ImmutableCapabilities.

Prototype

public ImmutableCapabilities() 

Source Link

Usage

From source file:io.appium.java_client.remote.NewAppiumSessionPayload.java

License:Apache License

/**
 * Writes json capabilities to some appendable object.
 *
 * @param appendable to write a json//from  ww w .j a v a 2s  . c o m
 */
public void writeTo(Appendable appendable) throws IOException {
    try (JsonOutput json = new Json().newOutput(appendable)) {
        json.beginObject();

        Map<String, Object> first = getOss();
        if (first == null) {
            //noinspection unchecked
            first = (Map<String, Object>) stream().findFirst().orElse(new ImmutableCapabilities()).asMap();
        }

        // Write the first capability we get as the desired capability.
        json.name(DESIRED_CAPABILITIES);
        json.write(first);

        if (!forceMobileJSONWP) {
            // And write the first capability for gecko13
            json.name(CAPABILITIES);
            json.beginObject();

            // Then write everything into the w3c payload. Because of the way we do this, it's easiest
            // to just populate the "firstMatch" section. The spec says it's fine to omit the
            // "alwaysMatch" field, so we do this.
            json.name(FIRST_MATCH);
            json.beginArray();
            getW3C().forEach(json::write);
            json.endArray();

            json.endObject(); // Close "capabilities" object
        }

        writeMetaData(json);

        json.endObject();
    }
}