15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project# Copyright 2014 The Chromium Authors. All rights reserved.
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project# Use of this source code is governed by a BSD-style license that can be
35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project# found in the LICENSE file.
45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectfrom telemetry.core.backends import form_based_credentials_backend
65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectclass CodePenCredentialsBackend(
95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    form_based_credentials_backend.FormBasedCredentialsBackend):
105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  @property
125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  def logged_in_javascript(self):
135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    """Evaluates to true iff already logged in."""
145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return 'document.querySelector(".login-area") === null'
155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  @property
175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  def credentials_type(self):
185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return 'codepen'
195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  @property
215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  def url(self):
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return 'https://codepen.io/login'
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  @property
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  def login_form_id(self):
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return 'login-login-form'
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  @property
295cd8bff2dd0337cb52bf48f312e3d2d55a8882fbMike J. Chen  def login_button_javascript(self):
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return """
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        LoginSettings.timeOnPageStartTime = 0;
325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        document.getElementById("log-in-button").click();
335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project        """
345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  @property
365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  def login_input_id(self):
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return 'login-email-field'
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  @property
405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project  def password_input_id(self):
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    return 'login-password-field_'
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project