/*
 * https://webfolder.io/license.html
 */
package io.webfolder.cdp.test;

import static io.webfolder.cdp.JsonLibrary.Gson;
import static io.webfolder.cdp.JsonLibrary.Jackson;

import io.webfolder.cdp.JsonLibrary;
import io.webfolder.cdp.junit.CdpExtension;

public class ExtensionFactory {

    public static CdpExtension cretate() {
        return cretate(false);
    }

    public static CdpExtension cretate(boolean usJackson) {
        return new CdpExtension() {

            @Override
            protected JsonLibrary jsonLibrary() {
                return usJackson ? Jackson : Gson;
            }

            @Override
            protected boolean headless() {
                return true;
            }

            @Override
            protected boolean createNewUserDataDir() {
                return true;
            }

            @Override
            protected String browserExecutablePath() {
                String chrome = System.getenv("CHROME_EXECUTABLE");
                if ( chrome != null &&
                        ! chrome.trim().isEmpty() ) {
                    return chrome.trim();
                } else {
                    return null;
                }
            }
        };
    }
}