Package com.ibm.sbt.test.js.connections.profiles.api

Source Code of com.ibm.sbt.test.js.connections.profiles.api.UpdateProfilePhoto$UpdateProfilePhotoPage

/*
* © Copyright IBM Corp. 2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.ibm.sbt.test.js.connections.profiles.api;

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.imageio.ImageIO;

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;

import com.ibm.sbt.automation.core.test.connections.BaseFilesTest;
import com.ibm.sbt.automation.core.test.pageobjects.BaseResultPage;
import com.ibm.sbt.automation.core.test.pageobjects.ResultPage;

/**
*
* @author VineetKanwal
*
**/
public class UpdateProfilePhoto extends BaseFilesTest {
  File file; 

  @Before
  public void init() {
    try {
      file = new File("JSProfilePicUpdate" + System.currentTimeMillis()
          + ".jpg");
      BufferedImage image = new BufferedImage(100, 100,
          BufferedImage.TYPE_INT_RGB);
      Graphics g = image.getGraphics();
      g.drawString("Hello World!!!", 10, 20);
      ImageIO.write(image, "jpg", file);     
    } catch (FileNotFoundException e) {
      Assert.fail("Error creating test file: " + e.getMessage());
      e.printStackTrace();
    } catch (IOException e) {
      Assert.fail("Error creating test file: " + e.getMessage());
      e.printStackTrace();
    }

  }

  @After
  public void destroy() {
    try {
      if (file != null) {
        file.delete();
      }
    } catch (Exception e) {
      Assert.fail("Error deleting test file: " + e.getMessage());
      e.printStackTrace();
    }
  }

  @Override
  protected boolean isEnvironmentValid() {
    // Disabling for Dojo 1.4.3 which does not support FormData
    if (environment.isLibrary("dojo") && !environment.isLibraryVersionGreatherThan("160")) return false;   
    return super.isEnvironmentValid() ;
  }
 
  @Test
  public void testUpdateProfilePhoto() {   
    UpdateProfilePhotoPage crudPage = launchSnippet();
    WebElement webElement = waitForText("success", "Profile Loaded", 20);
    String successMessage = webElement.getText();   
    Assert.assertTrue(successMessage.contains("Profile Loaded"));
    boolean uploaded = crudPage.updateProfilePhoto();
    Assert.assertTrue("Unable toupdate profile photo", uploaded);       
  }

  /*
   * (non-Javadoc)
   *
   * @see
   * com.ibm.sbt.automation.core.test.BaseTest#getAuthenticatedCondition()
   */
  @Override
  public String getAuthenticatedCondition() {
    return "idWithText";
  }

  /*
   * (non-Javadoc)
   *
   * @see com.ibm.sbt.automation.core.test.BaseTest#getAuthenticatedMatch()
   */
  @Override
  public String getAuthenticatedMatch() {
    return "uploadBtn";
  }

  // Internals

  private UpdateProfilePhotoPage launchSnippet() {
    ResultPage resultPage = launchSnippet("Social_Profiles_Update_Profile_Photo");   
    return new UpdateProfilePhotoPage(resultPage);
  }

  /*
   * Page object for the Connections_Communities_Create_Update_Delete_File
   * snippet
   */
  class UpdateProfilePhotoPage extends BaseResultPage {

    private ResultPage delegate;

    public UpdateProfilePhotoPage(ResultPage delegate) {
      this.delegate = delegate;

      setWebDriver(delegate.getWebDriver());
    }

    /*
     * (non-Javadoc)
     *
     * @see
     * com.ibm.sbt.automation.core.test.pageobjects.ResultPage#getText()
     */
    @Override
    public String getText() {
      return delegate.getText();
    }

    /*
     * (non-Javadoc)
     *
     * @see
     * com.ibm.sbt.automation.core.test.pageobjects.ResultPage#getWebElement
     * ()
     */
    @Override
    public WebElement getWebElement() {
      return delegate.getWebElement();
    }

    public WebElement getSuccess() {
      WebElement resultEl = getWebElement();
      return resultEl.findElement(By.id("success"));
    }

    public WebElement getError() {
      WebElement resultEl = getWebElement();
      return resultEl.findElement(By.id("error"));
    }
   
    public WebElement getFileControl() {
      WebElement resultEl = getWebElement();
      return resultEl.findElement(By.id("your-files"));
    }

    public WebElement getUpdateBtn() {
      WebElement resultEl = getWebElement();
      return resultEl.findElement(By.id("updateBtn"));
    }

    public void setFile() {
      WebElement fileCotrol = getFileControl();
      fileCotrol.sendKeys(file.getAbsolutePath());
    }

    public void clickUpdate() {
      getUpdateBtn().click();
    }

    /**
     * Update the current file and return the true if successful and
     * otherwise return false
     */
    public boolean updateProfilePhoto() {
      setFile();
      clickUpdate();
      WebElement webElement = waitForText("success", "Profile Photo updated successfuly", 50);

      String text = webElement.getText();

      boolean result = text.startsWith("Profile Photo updated successfuly");     

      return result;
    }

  }

}
TOP

Related Classes of com.ibm.sbt.test.js.connections.profiles.api.UpdateProfilePhoto$UpdateProfilePhotoPage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.