io.openvidu.test.browsers.FirefoxUser.java Source code

Java tutorial

Introduction

Here is the source code for io.openvidu.test.browsers.FirefoxUser.java

Source

/*
 * (C) Copyright 2017-2019 OpenVidu (https://openvidu.io/)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

package io.openvidu.test.browsers;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.UnexpectedAlertBehaviour;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

public class FirefoxUser extends BrowserUser {

    public FirefoxUser(String userName, int timeOfWaitInSeconds) {
        super(userName, timeOfWaitInSeconds);

        DesiredCapabilities capabilities = DesiredCapabilities.firefox();
        capabilities.setAcceptInsecureCerts(true);
        capabilities.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE);
        FirefoxProfile profile = new FirefoxProfile();

        // This flag avoids granting the access to the camera
        profile.setPreference("media.navigator.permission.disabled", true);
        // This flag force to use fake user media (synthetic video of multiple color)
        profile.setPreference("media.navigator.streams.fake", true);

        capabilities.setCapability(FirefoxDriver.PROFILE, profile);

        String REMOTE_URL = System.getProperty("REMOTE_URL_FIREFOX");
        if (REMOTE_URL != null) {
            log.info("Using URL {} to connect to remote web driver", REMOTE_URL);
            try {
                this.driver = new RemoteWebDriver(new URL(REMOTE_URL), capabilities);
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
        } else {
            log.info("Using local web driver");
            this.driver = new FirefoxDriver(capabilities);
        }

        this.configureDriver();
    }

}