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

import static io.webfolder.cdp.logger.CdpLogggerLevel.Info;
import static io.webfolder.cdp.logger.CdpLoggerType.Console;
import static java.nio.file.Files.exists;

import java.io.IOException;

import io.webfolder.cdp.Example;
import io.webfolder.cdp.Launcher;
import io.webfolder.cdp.Options;
import io.webfolder.cdp.session.Session;
import io.webfolder.cdp.session.SessionFactory;

@Example
public class DeleteProfileDirectoryCleanerExample {

    /**
     * This example creates a new user profile directory and
     * deletes the files after the browser is killed or SessionFactory is closed
     * cdp4j uses Java's default temp directory to store user profile files.
     * If you need a custom cleaner, copy and modify the UserProfileDirectoryCleaner
     */
    public static void main(String[] args) throws IOException {
        Options options = Options.builder()
                                    .createNewUserDataDir(true) // <- set this value to true
                                    .loggerType(Console)
                                    .consoleLoggerLevel(Info)
                                .build();

        Launcher launcher = new Launcher(options);

        try (SessionFactory factory = launcher.launch();
                            Session session = factory.create()) {
            session.navigate("https://bing.com");
            session.waitDocumentReady();
            session.getContent();
        } finally {
            launcher.kill();
        }

        // make sure that the user profile directory not exist
        if (exists(options.userDataDir())) {
            throw new IllegalArgumentException();
        }
    }
}