Skip to content

Commit

Permalink
Merge pull request #12111 from wordpress-mobile/issue/11897-re-enable…
Browse files Browse the repository at this point in the history
…-editor-ui-tests

Re-enable editor UI tests
  • Loading branch information
oguzkocer authored Jun 15, 2020
2 parents d8b4ef7 + 3a282b1 commit 5a556bf
Show file tree
Hide file tree
Showing 4 changed files with 232 additions and 181 deletions.
Original file line number Diff line number Diff line change
@@ -1,72 +1,74 @@
package org.wordpress.android.e2e;
//
//import android.Manifest.permission;
//
//import androidx.test.rule.ActivityTestRule;
//import androidx.test.rule.GrantPermissionRule;
//
//import org.junit.Before;
//import org.junit.Rule;
//import org.junit.Test;
//import org.wordpress.android.e2e.components.MasterbarComponent;
//import org.wordpress.android.e2e.pages.BlockEditorPage;
//import org.wordpress.android.e2e.pages.EditorPage;
//import org.wordpress.android.e2e.pages.MySitesPage;
//import org.wordpress.android.e2e.pages.PostPreviewPage;
//import org.wordpress.android.e2e.pages.SiteSettingsPage;
//import org.wordpress.android.support.BaseTest;
//import org.wordpress.android.ui.WPLaunchActivity;
//
//import static androidx.test.espresso.Espresso.pressBack;
//import static org.wordpress.android.support.WPSupportUtils.sleep;
//
//public class BlockEditorTests extends BaseTest {
// @Rule
// public ActivityTestRule<WPLaunchActivity> mActivityTestRule = new ActivityTestRule<>(WPLaunchActivity.class);
//
// @Rule
// public GrantPermissionRule mRuntimeImageAccessRule = GrantPermissionRule.grant(permission.WRITE_EXTERNAL_STORAGE);
//
// @Before
// public void setUp() {
// logoutIfNecessary();
// wpLogin();
// }
//
// @Test
// public void testSwitchToClassicAndPreview() {
// String title = "Hello Espresso!";
//
// MasterbarComponent mb = new MasterbarComponent().goToMySitesTab();
// sleep();
//
// MySitesPage mySitesPage = new MySitesPage();
// mySitesPage.gotoSiteSettings();
//
// // Set to Gutenberg. Apparently the site is defaulting to Aztec still.
// new SiteSettingsPage().toggleGutenbergSetting();
//
// // exit the Settings page
// pressBack();
//
// mb.clickBlogPosts();
//
// new MySitesPage()
// .startNewPost();
//
// BlockEditorPage blockEditorPage = new BlockEditorPage();
// blockEditorPage.waitForTitleDisplayed();
//
// blockEditorPage.enterTitle(title);
//
// blockEditorPage.switchToClassic();
//
// EditorPage editorPage = new EditorPage();
// editorPage.hasTitle(title);
//
// editorPage.previewPost();
// sleep();
//
// new PostPreviewPage();
// }
//}

import android.Manifest.permission;

import androidx.test.rule.ActivityTestRule;
import androidx.test.rule.GrantPermissionRule;

import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.wordpress.android.e2e.components.MasterbarComponent;
import org.wordpress.android.e2e.pages.BlockEditorPage;
import org.wordpress.android.e2e.pages.EditorPage;
import org.wordpress.android.e2e.pages.MySitesPage;
import org.wordpress.android.e2e.pages.PostPreviewPage;
import org.wordpress.android.e2e.pages.SiteSettingsPage;
import org.wordpress.android.support.BaseTest;
import org.wordpress.android.ui.WPLaunchActivity;

import static androidx.test.espresso.Espresso.pressBack;
import static org.wordpress.android.support.WPSupportUtils.sleep;

public class BlockEditorTests extends BaseTest {
@Rule
public ActivityTestRule<WPLaunchActivity> mActivityTestRule = new ActivityTestRule<>(WPLaunchActivity.class);

@Rule
public GrantPermissionRule mRuntimeImageAccessRule = GrantPermissionRule.grant(permission.WRITE_EXTERNAL_STORAGE);

@Before
public void setUp() {
logoutIfNecessary();
wpLogin();
}

@Ignore("until startup times are improved or idling resources are made more reliable")
@Test
public void testSwitchToClassicAndPreview() {
String title = "Hello Espresso!";

MasterbarComponent mb = new MasterbarComponent().goToMySitesTab();
sleep();

MySitesPage mySitesPage = new MySitesPage();
mySitesPage.gotoSiteSettings();

// Set to Gutenberg. Apparently the site is defaulting to Aztec still.
new SiteSettingsPage().setEditorToGutenberg();

// exit the Settings page
pressBack();

mb.clickBlogPosts();

new MySitesPage()
.startNewPost();

BlockEditorPage blockEditorPage = new BlockEditorPage();
blockEditorPage.waitForTitleDisplayed();

blockEditorPage.enterTitle(title);

blockEditorPage.switchToClassic();

EditorPage editorPage = new EditorPage();
editorPage.hasTitle(title);

editorPage.previewPost();
sleep();

new PostPreviewPage();
}
}
216 changes: 110 additions & 106 deletions WordPress/src/androidTest/java/org/wordpress/android/e2e/EditorTests.java
Original file line number Diff line number Diff line change
@@ -1,107 +1,111 @@
package org.wordpress.android.e2e;
//
//import android.Manifest.permission;
//
//import androidx.test.rule.ActivityTestRule;
//import androidx.test.rule.GrantPermissionRule;
//
//import org.junit.Before;
//import org.junit.Rule;
//import org.junit.Test;
//import org.wordpress.android.R;
//import org.wordpress.android.e2e.components.MasterbarComponent;
//import org.wordpress.android.e2e.pages.EditorPage;
//import org.wordpress.android.e2e.pages.MySitesPage;
//import org.wordpress.android.support.BaseTest;
//import org.wordpress.android.ui.WPLaunchActivity;
//
//import java.time.Instant;
//
//import static androidx.test.espresso.Espresso.onView;
//import static androidx.test.espresso.Espresso.pressBack;
//import static androidx.test.espresso.matcher.ViewMatchers.withId;
//import static androidx.test.espresso.matcher.ViewMatchers.withText;
//import static junit.framework.TestCase.assertTrue;
//import static org.wordpress.android.support.WPSupportUtils.checkViewHasText;
//import static org.wordpress.android.support.WPSupportUtils.sleep;
//import static org.wordpress.android.support.WPSupportUtils.waitForElementToNotBeDisplayed;
//
//public class EditorTests extends BaseTest {
// @Rule
// public ActivityTestRule<WPLaunchActivity> mActivityTestRule = new ActivityTestRule<>(WPLaunchActivity.class);
//
// @Rule
// public GrantPermissionRule mRuntimeImageAccessRule = GrantPermissionRule.grant(permission.WRITE_EXTERNAL_STORAGE);
//
// @Before
// public void setUp() {
// logoutIfNecessary();
// wpLogin();
// }
//
// @Test
// public void testPublishSimplePost() {
// String title = "Hello Espresso!";
// String content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
//
// MasterbarComponent mb = new MasterbarComponent().goToMySitesTab();
// sleep();
// mb.clickBlogPosts();
//
// new MySitesPage()
// .startNewPost();
//
// EditorPage editorPage = new EditorPage();
// editorPage.enterTitle(title);
// editorPage.enterContent(content);
// boolean isPublished = editorPage.publishPost();
// assertTrue(isPublished);
// }
//
// @Test
// public void testPublishFullPost() {
// String title = "Hello Espresso!";
// String content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod "
// + "tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis "
// + "exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.";
// String category = "Wedding";
// long now = Instant.now().toEpochMilli();
// String tag = "Tag " + now;
//
// MasterbarComponent mb = new MasterbarComponent().goToMySitesTab();
// sleep();
// mb.clickBlogPosts();
//
// new MySitesPage()
// .startNewPost();
//
// EditorPage editorPage = new EditorPage();
// editorPage.enterTitle(title);
// editorPage.enterContent(content);
// editorPage.enterImage();
// editorPage.openSettings();
//
// editorPage.addACategory(category);
// editorPage.addATag(tag);
// editorPage.setFeaturedImage();
//
// // ----------------------------
// // Verify post settings data
// // ----------------------------
// // Verify Category added
// checkViewHasText(onView(withId(R.id.post_categories)), category);
//
// // Verify tag added
// checkViewHasText(onView(withId(R.id.post_tags)), tag);
//
// // Verify the featured image added
// waitForElementToNotBeDisplayed(onView(withText(R.string.post_settings_set_featured_image)));
//
// // head back to the post
// pressBack();
//
// // publish
// boolean isPublished = editorPage.publishPost();
// assertTrue(isPublished);
// }
//}

import android.Manifest.permission;

import androidx.test.rule.ActivityTestRule;
import androidx.test.rule.GrantPermissionRule;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.wordpress.android.R;
import org.wordpress.android.e2e.components.MasterbarComponent;
import org.wordpress.android.e2e.pages.EditorPage;
import org.wordpress.android.e2e.pages.MySitesPage;
import org.wordpress.android.e2e.pages.SiteSettingsPage;
import org.wordpress.android.support.BaseTest;
import org.wordpress.android.ui.WPLaunchActivity;

import java.time.Instant;

import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.Espresso.pressBack;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import static junit.framework.TestCase.assertTrue;
import static org.wordpress.android.support.WPSupportUtils.checkViewHasText;
import static org.wordpress.android.support.WPSupportUtils.sleep;
import static org.wordpress.android.support.WPSupportUtils.waitForElementToNotBeDisplayed;

public class EditorTests extends BaseTest {
@Rule
public ActivityTestRule<WPLaunchActivity> mActivityTestRule = new ActivityTestRule<>(WPLaunchActivity.class);

@Rule
public GrantPermissionRule mRuntimeImageAccessRule = GrantPermissionRule.grant(permission.WRITE_EXTERNAL_STORAGE);

@Before
public void setUp() {
logoutIfNecessary();
wpLogin();

MasterbarComponent mb = new MasterbarComponent().goToMySitesTab();
sleep();

MySitesPage mySitesPage = new MySitesPage();
mySitesPage.gotoSiteSettings();

// Set to Classic.
new SiteSettingsPage().setEditorToClassic();

// exit the Settings page
pressBack();

mb.clickBlogPosts();

new MySitesPage()
.startNewPost();
}

@Test
public void testPublishSimplePost() {
String title = "Hello Espresso!";
String content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";

EditorPage editorPage = new EditorPage();
editorPage.enterTitle(title);
editorPage.enterContent(content);
boolean isPublished = editorPage.publishPost();
assertTrue(isPublished);
}

@Test
public void testPublishFullPost() {
String title = "Hello Espresso!";
String content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod "
+ "tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud "
+ "exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.";
String category = "Wedding";
long now = Instant.now().toEpochMilli();
String tag = "Tag " + now;

EditorPage editorPage = new EditorPage();
editorPage.enterTitle(title);
editorPage.enterContent(content);
editorPage.enterImage();
editorPage.openSettings();

editorPage.addACategory(category);
editorPage.addATag(tag);
editorPage.setFeaturedImage();

// ----------------------------
// Verify post settings data
// ----------------------------
// Verify Category added
checkViewHasText(onView(withId(R.id.post_categories)), category);

// Verify tag added
checkViewHasText(onView(withId(R.id.post_tags)), tag);

// Verify the featured image added
waitForElementToNotBeDisplayed(onView(withText(R.string.post_settings_set_featured_image)));

// head back to the post
pressBack();

// publish
boolean isPublished = editorPage.publishPost();
assertTrue(isPublished);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@

import org.wordpress.android.R;

import static androidx.test.espresso.Espresso.onData;
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.action.ViewActions.scrollTo;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.PreferenceMatchers.withTitle;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import static org.wordpress.android.support.WPSupportUtils.ensureSwitchPreferenceIsChecked;

public class SiteSettingsPage {
private static ViewInteraction settings = onView(withText(R.string.site_settings_title_title));
Expand All @@ -18,9 +20,15 @@ public SiteSettingsPage() {
settings.check(matches(isDisplayed()));
}

public void toggleGutenbergSetting() {
onView(withText(R.string.site_settings_gutenberg_default_for_new_posts))
public void setEditorToClassic() {
onData(withTitle(R.string.site_settings_gutenberg_default_for_new_posts))
.perform(scrollTo())
.perform((click()));
.perform(ensureSwitchPreferenceIsChecked(false));
}

public void setEditorToGutenberg() {
onData(withTitle(R.string.site_settings_gutenberg_default_for_new_posts))
.perform(scrollTo())
.perform(ensureSwitchPreferenceIsChecked(true));
}
}
Loading

0 comments on commit 5a556bf

Please sign in to comment.