🏡 index : quine-global/quine-anaconda-webui.git

# Copyright (C) 2022 Red Hat, Inc.
# SPDX-License-Identifier: LGPL-2.1-or-later

import os
import sys

HELPERS_DIR = os.path.dirname(__file__)
sys.path.append(HELPERS_DIR)

from step_logger import log_step


class Password():
    def __init__(self, browser, id_prefix):
        self.browser = browser
        self.id_prefix = id_prefix

    def check_pw_focused(self):
        sel = f"#{self.id_prefix}-password-field"
        self.browser.wait_visible(f"{sel}:focus")

    @log_step(snapshot_before=True)
    def check_pw_rule(self, rule, value):
        sel = f"#{self.id_prefix}-password-rule-{rule}"
        cls_value = f"pf-m-{value}"
        self.browser.wait_visible(sel)
        self.browser.wait_attr_contains(sel, "class", cls_value)

    @log_step(snapshot_before=True)
    def set_password(self, password, append=False, value_check=True):
        sel = f"#{self.id_prefix}-password-field"
        self.browser.set_input_text(sel, password, append=append, value_check=value_check)

    @log_step(snapshot_before=True)
    def check_password(self, password):
        sel = f"#{self.id_prefix}-password-field"
        self.browser.wait_val(sel, password)

    @log_step(snapshot_before=True)
    def set_password_confirm(self, password):
        sel = f"#{self.id_prefix}-password-confirm-field"
        self.browser.set_input_text(sel, password)

    @log_step(snapshot_before=True)
    def check_password_confirm(self, password):
        sel = f"#{self.id_prefix}-password-confirm-field"
        self.browser.wait_val(sel, password)

    @log_step(snapshot_before=True)
    def check_pw_strength(self, strength):
        sel = f"#{self.id_prefix}-password-strength-label"

        if strength is None:
            self.browser.wait_not_present(sel)
            return

        variant = ""
        if strength == "weak":
            variant = "error"
        elif strength == "medium":
            variant = "warning"
        elif strength == "strong":
            variant = "success"

        self.browser.wait_attr_contains(sel, "class", f"pf-m-{variant}")