package org.keycloak.testsuite.console.events;

import org.jboss.arquillian.graphene.page.Page;
import org.junit.Before;
import org.junit.Test;
import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.testsuite.console.AbstractConsoleTest;
import org.keycloak.testsuite.console.page.events.Config;

import static org.junit.Assert.*;

/**
 * @author mhajas
 */
public class ConfigTest extends AbstractConsoleTest {

    @Page
    private Config configPage;

    @Before
    public void beforeConfigTest() {
        configPage.navigateTo();
    }

    @Test
    public void configLoginEventsTest() {
        configPage.form().setSaveEvents(true);
        configPage.form().removeSaveType("LOGIN");
        configPage.form().addSaveType("REGISTER_NODE");
        configPage.form().setExpiration("50", "Days");
        configPage.form().save();
        assertFlashMessageSuccess();

        RealmRepresentation realm = testRealmResource().toRepresentation();
        assertTrue(realm.isEventsEnabled());
        assertFalse(realm.getEnabledEventTypes().contains("LOGIN"));
        assertTrue(realm.getEnabledEventTypes().contains("REGISTER_NODE"));
        assertEquals(4320000L, realm.getEventsExpiration().longValue());
    }

    @Test
    public void configAdminEventsTest() {
        configPage.form().setSaveAdminEvents(true);
        configPage.form().setIncludeRepresentation(true);
        configPage.form().save();
        assertFlashMessageSuccess();

        RealmRepresentation realm = testRealmResource().toRepresentation();
        assertTrue(realm.isAdminEventsEnabled());
        assertTrue(realm.isAdminEventsDetailsEnabled());
    }
}

@@ -692,14 +692,11 @@
 m().
-remove
+add
 Save
@@ -705,16 +705,141 @@
 pe(%22
-LOGIN%22);
+REGISTER_NODE%22);%0A        //after removeSavedType method stay input focused -%3E in phantomjs drop menu doesn't appear after first click
 %0A   
@@ -853,35 +853,38 @@
 nfigPage.form().
-add
+remove
 SaveType(%22REGIST
@@ -873,37 +873,29 @@
 veSaveType(%22
-REGISTER_NODE
+LOGIN
 %22);%0A        

fix phantomjs problem with ConfigTest