apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ template "keycloak.fullname" . }}-test
  labels:
    app: {{ template "keycloak.name" . }}
    chart: {{ template "keycloak.chart" . }}
    release: "{{ .Release.Name }}"
    heritage: "{{ .Release.Service }}"
data:
  test.py: |
    import os
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions
    from urllib.parse import urlparse

    print('Creating PhantomJS driver...')
    driver = webdriver.PhantomJS()

    base_url = 'http://{{ template "keycloak.fullname" . }}-http{{ if ne 80 (int .Values.keycloak.service.port) }}{{ .Values.keycloak.service.port }}{{ end }}'

    print('Opening Keycloak...')
    driver.get('{0}/auth/admin/'.format(base_url))

    username = os.environ['KEYCLOAK_USER']
    password = os.environ['KEYCLOAK_PASSWORD']

    username_input = WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.ID, "username")))
    password_input = WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.ID, "password")))
    login_button = WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.ID, "kc-login")))

    print('Entering username...')
    username_input.send_keys(username)

    print('Entering password...')
    password_input.send_keys(password)

    print('Clicking login button...')
    login_button.click()

    current_url = urlparse(driver.current_url)
    expected_url = urlparse('{0}/auth/admin/master/console/'.format(base_url))

    print('Current URL: {0}'.format(current_url))
    print('Expected URL: {0}'.format(expected_url))

    if current_url.path != expected_url.path:
        print('Login failed. Current url is not expected url')
        exit(1)

    print('URLs match. Login successful.')

    driver.quit()
