001/* 002 * (C) Copyright 2013 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 * 016 * Contributors: 017 * Thomas Roger 018 */ 019 020package org.nuxeo.functionaltests.fragment; 021 022import static org.junit.Assert.assertFalse; 023import static org.junit.Assert.assertTrue; 024 025import java.util.List; 026 027import org.nuxeo.functionaltests.AbstractTest; 028import org.nuxeo.functionaltests.Locator; 029import org.openqa.selenium.By; 030import org.openqa.selenium.Dimension; 031import org.openqa.selenium.Point; 032import org.openqa.selenium.WebDriver; 033import org.openqa.selenium.WebElement; 034 035/** 036 * Wraps a {@link org.openqa.selenium.WebElement} and delegates all method calls to the underlying 037 * {@link org.openqa.selenium.WebElement}. 038 * 039 * @since 5.7.3 040 */ 041public class WebFragmentImpl implements WebFragment { 042 043 protected final WebDriver driver; 044 045 protected String id; 046 047 protected WebElement element; 048 049 public WebFragmentImpl(WebDriver driver, WebElement element) { 050 this.driver = driver; 051 this.element = element; 052 id = element.getAttribute("id"); 053 } 054 055 @Override 056 public String getId() { 057 return id; 058 } 059 060 @Override 061 public WebElement getElement() { 062 return element; 063 } 064 065 @Override 066 public void setElement(WebElement element) { 067 this.element = element; 068 id = element.getAttribute("id"); 069 } 070 071 @Override 072 public void click() { 073 element.click(); 074 } 075 076 @Override 077 public void submit() { 078 element.submit(); 079 } 080 081 @Override 082 public void sendKeys(CharSequence... keysToSend) { 083 element.sendKeys(keysToSend); 084 } 085 086 @Override 087 public void clear() { 088 element.clear(); 089 } 090 091 @Override 092 public String getTagName() { 093 return element.getTagName(); 094 } 095 096 @Override 097 public String getAttribute(String name) { 098 return element.getAttribute(name); 099 } 100 101 @Override 102 public boolean isSelected() { 103 return element.isSelected(); 104 } 105 106 @Override 107 public boolean isEnabled() { 108 return element.isEnabled(); 109 } 110 111 @Override 112 public String getText() { 113 return element.getText(); 114 } 115 116 @Override 117 public List<WebElement> findElements(By by) { 118 return element.findElements(by); 119 } 120 121 @Override 122 public WebElement findElement(By by) { 123 return element.findElement(by); 124 } 125 126 @Override 127 public boolean isDisplayed() { 128 return element.isDisplayed(); 129 } 130 131 @Override 132 public Point getLocation() { 133 return element.getLocation(); 134 } 135 136 @Override 137 public Dimension getSize() { 138 return element.getSize(); 139 } 140 141 @Override 142 public String getCssValue(String propertyName) { 143 return element.getCssValue(propertyName); 144 } 145 146 @Override 147 public <T extends WebFragment> T getWebFragment(By by, Class<T> webFragmentClass) { 148 return AbstractTest.getWebFragment(by, webFragmentClass); 149 } 150 151 @Override 152 public <T extends WebFragment> T getWebFragment(WebElement element, Class<T> webFragmentClass) { 153 return AbstractTest.getWebFragment(element, webFragmentClass); 154 } 155 156 @Override 157 public boolean containsText(String text) { 158 return element.getText().contains(text); 159 } 160 161 @Override 162 public void waitForTextToBePresent(String text) { 163 Locator.waitForTextPresent(element, text); 164 } 165 166 @Override 167 public void checkTextToBePresent(String text) { 168 assertTrue(element.getText().contains(text)); 169 } 170 171 @Override 172 public void checkTextToBeNotPresent(String text) { 173 assertFalse(element.getText().contains(text)); 174 } 175}