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 WebElement element; 046 047 public WebFragmentImpl(WebDriver driver, WebElement element) { 048 this.driver = driver; 049 this.element = element; 050 } 051 052 @Override 053 public String getId() { 054 return element.getAttribute("id"); 055 } 056 057 @Override 058 public WebElement getElement() { 059 return element; 060 } 061 062 @Override 063 public void setElement(WebElement element) { 064 this.element = element; 065 } 066 067 @Override 068 public void click() { 069 element.click(); 070 } 071 072 @Override 073 public void submit() { 074 element.submit(); 075 } 076 077 @Override 078 public void sendKeys(CharSequence... keysToSend) { 079 element.sendKeys(keysToSend); 080 } 081 082 @Override 083 public void clear() { 084 element.clear(); 085 } 086 087 @Override 088 public String getTagName() { 089 return element.getTagName(); 090 } 091 092 @Override 093 public String getAttribute(String name) { 094 return element.getAttribute(name); 095 } 096 097 @Override 098 public boolean isSelected() { 099 return element.isSelected(); 100 } 101 102 @Override 103 public boolean isEnabled() { 104 return element.isEnabled(); 105 } 106 107 @Override 108 public String getText() { 109 return element.getText(); 110 } 111 112 @Override 113 public List<WebElement> findElements(By by) { 114 return element.findElements(by); 115 } 116 117 @Override 118 public WebElement findElement(By by) { 119 return element.findElement(by); 120 } 121 122 @Override 123 public boolean isDisplayed() { 124 return element.isDisplayed(); 125 } 126 127 @Override 128 public Point getLocation() { 129 return element.getLocation(); 130 } 131 132 @Override 133 public Dimension getSize() { 134 return element.getSize(); 135 } 136 137 @Override 138 public String getCssValue(String propertyName) { 139 return element.getCssValue(propertyName); 140 } 141 142 @Override 143 public <T extends WebFragment> T getWebFragment(By by, Class<T> webFragmentClass) { 144 return AbstractTest.getWebFragment(by, webFragmentClass); 145 } 146 147 @Override 148 public <T extends WebFragment> T getWebFragment(WebElement element, Class<T> webFragmentClass) { 149 return AbstractTest.getWebFragment(element, webFragmentClass); 150 } 151 152 @Override 153 public boolean containsText(String text) { 154 return element.getText().contains(text); 155 } 156 157 @Override 158 public void waitForTextToBePresent(String text) { 159 Locator.waitForTextPresent(element, text); 160 } 161 162 @Override 163 public void checkTextToBePresent(String text) { 164 assertTrue(element.getText().contains(text)); 165 } 166 167 @Override 168 public void checkTextToBeNotPresent(String text) { 169 assertFalse(element.getText().contains(text)); 170 } 171 172}