This repository has been archived by the owner on Nov 23, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 40
Summary
Mikołaj Mański edited this page Jul 26, 2016
·
4 revisions
And this is it! We've written a simple test case which is checking whether adding and configuring is working properly. The entire code can be found below:
package com.cognifide.test.summer;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import com.cognifide.qa.bb.aem.AemLogin;
import com.cognifide.qa.bb.aem.dialog.classic.field.AemTextField;
import com.cognifide.qa.bb.aem.ui.AemDialog;
import com.cognifide.qa.bb.aem.ui.parsys.AemParsys;
import com.cognifide.qa.bb.junit.Modules;
import com.cognifide.qa.bb.junit.TestRunner;
import com.cognifide.test.GuiceModule;
import com.google.inject.Inject;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(TestRunner.class)
@Modules(GuiceModule.class)
public class AddComponentTest {
private static final String TEST_VALUE = "Bobcat test";
@Inject
private SummerBlockbusterHitsPage summerBlockbusterHitsPage;
@Inject
private AemLogin aemLogin;
private AemParsys parsys;
@Before
public void openSiteadminPage() {
aemLogin.authorLogin();
summerBlockbusterHitsPage.open();
assertTrue(summerBlockbusterHitsPage.isDisplayed());
parsys = summerBlockbusterHitsPage.getTopParsys().clear();
}
@Test
public void testAddingAndEditingSectionHeader() {
SectionHeaderComponent sectionHeaderComponent = parsys.insertComponent(SectionHeaderComponent.class);
AemDialog dialog = sectionHeaderComponent.getDialog();
dialog.open();
AemTextField title = sectionHeaderComponent.getHeaderText();
title.setValue(TEST_VALUE);
dialog.ok();
//wait until page reloads after modifying the component
assertTrue(summerBlockbusterHitsPage.isDisplayed());
sectionHeaderComponent = parsys.getFirstComponentOfType(SectionHeaderComponent.class);
assertThat(sectionHeaderComponent.getText(), is(TEST_VALUE));
}
@After
public void cleanUp() {
parsys.clear();
}
}
Modified SummerBlockbusterHitsPage
class:
package com.cognifide.test.summer;
import org.openqa.selenium.support.FindBy;
import com.cognifide.qa.bb.aem.AbstractPage;
import com.cognifide.qa.bb.aem.ui.parsys.AemParsys;
import com.cognifide.qa.bb.qualifier.Frame;
import com.cognifide.qa.bb.qualifier.PageObject;
/**
* This class represents a page from Geometrixx project.
* <p/>
* Frame annotation determines default frame for all methods in this class.
*/
@PageObject
@Frame("$cq")
public class SummerBlockbusterHitsPage extends AbstractPage {
private static final String PAGE_TITLE = "Summer Blockbuster Hits and Misses";
private static final String URL = "/cf#/content/geometrixx-media/en/entertainment/summer-blockbuster-hits-and-misses.html";
@FindBy(xpath = "//div[contains(@class, 'cq-placeholder-article-content-par_47article_47par1_47_42')]/..")
private AemParsys topParsys;
@FindBy(xpath = "//div[contains(@class, 'cq-element-article-content-par_47image')]/...")
private ImageComponent imageComponent;
@FindBy(className = "cq-element-right-panel-par_47section_95header")
private SectionHeaderComponent sectionHeader;
public ImageComponent getImageComponent() {
return imageComponent;
}
public SectionHeaderComponent getSectionHeader() {
return sectionHeader;
}
public AemParsys getTopParsys() {
return topParsys;
}
@Override
public String getContentPath() {
return URL;
}
@Override
public String getPageTitle() {
return PAGE_TITLE;
}
}
This is a part of AEM Authoring tutorial, please refer to other tutorial steps:
- Configuring Bobcat
- Selenium enhancements
- Cucumber enhancements
- Traffic analyzer
- Email support
- Reporting
- Cloud integration
- Mobile integration
- Executing tests on different environments
- Working with multiple threads
- Tips and tricks
- Authoring tutorial - Classic
- AEM Classic Authoring Advanced usage
- Siteadmin
- Sidekick
- Aem Component
- Working with author pages
- Working with Publish pages
- Advanced component interactions
- Working with Context Menu
- Using Aem Content Tree
- Aem Content Finder
- Storing component configurations
- Working with packages
- Jcr Support
- Authoring tutorial - Touch UI
- Adding and editing a component
- Sites management tutorial