Skip to content

Commit

Permalink
Added new methods for Maven Preference Page and fixed old one
Browse files Browse the repository at this point in the history
Added tests for new methods

Signed-off-by: Oleksii Korniienko <olkornii@redhat.com>
  • Loading branch information
olkornii committed Sep 5, 2023
1 parent 61c4ae6 commit 0ff4f69
Show file tree
Hide file tree
Showing 2 changed files with 146 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import org.eclipse.reddeer.core.reference.ReferencedComposite;
import org.eclipse.reddeer.jface.preference.PreferencePage;
import org.eclipse.reddeer.swt.impl.button.CheckBox;
import org.eclipse.reddeer.swt.impl.combo.LabeledCombo;
import org.hamcrest.Description;
import org.hamcrest.TypeSafeMatcher;

Expand All @@ -33,7 +34,11 @@ public class MavenPreferencePage extends PreferencePage {
private static final String DOWNLOAD_ARTIFACT_JAVADOC="Download Artifact JavaDoc";
private static final String DOWNLOAD_REPO_INDEX_UPDATES_ON_STARTUP="Download repository index updates on startup";
private static final String UPDATE_MAVEN_PROJECTS_ON_STARTUP="Update Maven projects on startup";
private static final String AUTOMATICALLY_UPDATE_MAVEN_PROJECTS_CONF="Automatically update Maven projects configuration";
private static final String HIDE_FOLDERS_OF_PHYSICALLY_NESTED_MODULES="Hide folders of physically nested modules (experimental)";
private static final String USE_MAVEN_CENTRAL_TO_IDENTIFY_UNKNOWN_ARTIFACTS="Use Maven-Central to identify unknown artifacts (e.g. when locating sources)";
private static final String GLOBAL_CHECKSUM_POLICY="Global Checksum Policy:";
private static final String GLOBAL_UPDATE_POLICY="Global Update Policy:";

/**
* Constructs the preference page with "Maven".
Expand Down Expand Up @@ -67,7 +72,11 @@ public MavenPreferencePage setOffline(boolean check) {
* @return true, if is do not auto update deps checked
*/
public boolean isDoNotAutoUpdateDepsChecked() {
return new CheckBox(this, MavenPreferencePage.DO_NOT_AUTO_UPDATE_DEPS).isChecked();
try {
return new CheckBox(this, MavenPreferencePage.DO_NOT_AUTO_UPDATE_DEPS).isChecked();
} catch (org.eclipse.reddeer.core.exception.CoreLayerException e) { // there is no CheckBox "Do Not Auto update..." starting 2023-09-M3 Eclipse
return isGlobalUpdatePolicy("Never");
}
}

/**
Expand All @@ -76,7 +85,15 @@ public boolean isDoNotAutoUpdateDepsChecked() {
* @param check the new do not auto update deps
*/
public MavenPreferencePage setDoNotAutoUpdateDeps(boolean check) {
new CheckBox(this, MavenPreferencePage.DO_NOT_AUTO_UPDATE_DEPS).toggle(check);
try {
new CheckBox(this, MavenPreferencePage.DO_NOT_AUTO_UPDATE_DEPS).toggle(check);
} catch (org.eclipse.reddeer.core.exception.CoreLayerException e) { // there is no CheckBox "Do Not Auto update..." starting 2023-09-M3 Eclipse
if (check) {
setGlobalUpdatePolicy("Never");
} else {
setGlobalUpdatePolicy("Default");
}
}
return this;
}

Expand Down Expand Up @@ -194,6 +211,25 @@ public MavenPreferencePage setUpdateMavenProjectsOnStartup(boolean check) {
return this;
}

/**
* Returns true when Automatically update Maven projects configuration checkbox is checked .
*
* @return true, if is Automatically update Maven projects configuration checked
*/
public boolean isAutoUpdateMavenProjectConfigurationChecked() {
return new CheckBox(this, MavenPreferencePage.AUTOMATICALLY_UPDATE_MAVEN_PROJECTS_CONF).isChecked();
}

/**
* Sets Automatically update Maven projects configuration checkbox .
*
* @param check the new Automatically update Maven projects configuration
*/
public MavenPreferencePage setAutoUpdateMavenProjectConfiguration(boolean check) {
new CheckBox(this, MavenPreferencePage.AUTOMATICALLY_UPDATE_MAVEN_PROJECTS_CONF).toggle(check);
return this;
}

/**
* Returns true when Hide folders of physically nested modules checkbox is checked .
*
Expand All @@ -212,4 +248,63 @@ public MavenPreferencePage setHideFoldersOfPhysicalyNestedModules(boolean check)
new CheckBox(this, MavenPreferencePage.HIDE_FOLDERS_OF_PHYSICALLY_NESTED_MODULES).toggle(check);
return this;
}

/**
* Returns true when Use Maven-Central to identify unknown artifacts checkbox is checked .
*
* @return true, if is Use Maven-Central to identify unknown artifacts checked
*/
public boolean isUseMavenCentralToIdentifyUnkArtifChecked() {
return new CheckBox(this, MavenPreferencePage.USE_MAVEN_CENTRAL_TO_IDENTIFY_UNKNOWN_ARTIFACTS).isChecked();
}

/**
* Sets Use Maven-Central to identify unknown artifacts checkbox .
*
* @param check the new Use Maven-Central to identify unknown artifacts
*/
public MavenPreferencePage setUseMavenCentralToIdentifyUnkArtif(boolean check) {
new CheckBox(this, MavenPreferencePage.USE_MAVEN_CENTRAL_TO_IDENTIFY_UNKNOWN_ARTIFACTS).toggle(check);
return this;
}

/**
* Returns true when Global Checksum Policy selected menu item is same as updatePolicyType .
*
* @param updatePolicyType type of update policy to compare
* @return true, if selected menu item is same as updatePolicyType
*/
public boolean isGlobalChecksumPolicy(String updatePolicyType) {
return updatePolicyType.equals(new LabeledCombo(MavenPreferencePage.GLOBAL_CHECKSUM_POLICY).getSelection());
}

/**
* Sets Global Checksum Policy .
*
* @param updatePolicyType type of update policy to select
*/
public MavenPreferencePage setGlobalChecksumPolicy(String updatePolicyType) {
new LabeledCombo(MavenPreferencePage.GLOBAL_CHECKSUM_POLICY).setSelection(updatePolicyType);
return this;
}

/**
* Returns true when Global Update Policy selected menu item is same as updatePolicyType .
*
* @param updatePolicyType type of update policy to compare
* @return true, if selected menu item is same as updatePolicyType
*/
public boolean isGlobalUpdatePolicy(String updatePolicyType) {
return updatePolicyType.equals(new LabeledCombo(MavenPreferencePage.GLOBAL_UPDATE_POLICY).getSelection());
}

/**
* Sets Global Update Policy .
*
* @param updatePolicyType type of update policy to select
*/
public MavenPreferencePage setGlobalUpdatePolicy(String updatePolicyType) {
new LabeledCombo(MavenPreferencePage.GLOBAL_UPDATE_POLICY).setSelection(updatePolicyType);
return this;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,28 +28,69 @@ public class MavenPreferencePageTest {

private MavenPreferencePage mavenPreferencePage = new MavenPreferencePage(preferencesDialog);

@Test
public void checkGlobalUpdatePolicy() {
preferencesDialog.open();
preferencesDialog.select(mavenPreferencePage);

mavenPreferencePage.setGlobalUpdatePolicy("Always");
assertTrue(mavenPreferencePage.isGlobalUpdatePolicy("Always"));
mavenPreferencePage.setGlobalUpdatePolicy("Daily");
assertTrue(mavenPreferencePage.isGlobalUpdatePolicy("Daily"));
mavenPreferencePage.setGlobalUpdatePolicy("Hourly");
assertTrue(mavenPreferencePage.isGlobalUpdatePolicy("Hourly"));
mavenPreferencePage.setGlobalUpdatePolicy("Default");
assertTrue(mavenPreferencePage.isGlobalUpdatePolicy("Default"));
mavenPreferencePage.setGlobalUpdatePolicy("Never");
assertTrue(mavenPreferencePage.isGlobalUpdatePolicy("Never"));

preferencesDialog.cancel();
}

@Test
public void checkGlobalChecksumPolicy() {
preferencesDialog.open();
preferencesDialog.select(mavenPreferencePage);

mavenPreferencePage.setGlobalChecksumPolicy("Warn");
assertTrue(mavenPreferencePage.isGlobalChecksumPolicy("Warn"));
mavenPreferencePage.setGlobalChecksumPolicy("Fail");
assertTrue(mavenPreferencePage.isGlobalChecksumPolicy("Fail"));
mavenPreferencePage.setGlobalChecksumPolicy("Default");
assertTrue(mavenPreferencePage.isGlobalChecksumPolicy("Default"));
mavenPreferencePage.setGlobalChecksumPolicy("Ignore");
assertTrue(mavenPreferencePage.isGlobalChecksumPolicy("Ignore"));

preferencesDialog.cancel();
}

@Test
public void checkAllPreferences() {
preferencesDialog.open();
preferencesDialog.select(mavenPreferencePage);


mavenPreferencePage.setDebugOutput(true);
// mavenPreferencePage.setDoNotAutoUpdateDeps(true); # is not a part of 2023-09 Eclipse
mavenPreferencePage.setDoNotAutoUpdateDeps(true);
mavenPreferencePage.setDownloadArtifactJavadoc(true);
mavenPreferencePage.setDownloadArtifactSources(true);
mavenPreferencePage.setDownloadRepoIndexOnStartup(true);
mavenPreferencePage.setHideFoldersOfPhysicalyNestedModules(true);
mavenPreferencePage.setOffline(true);
mavenPreferencePage.setUpdateMavenProjectsOnStartup(true);
mavenPreferencePage.setAutoUpdateMavenProjectConfiguration(true);
mavenPreferencePage.setUseMavenCentralToIdentifyUnkArtif(true);

assertTrue(mavenPreferencePage.isDebugOutputChecked());
// assertTrue(mavenPreferencePage.isDoNotAutoUpdateDepsChecked()); # is not a part of 2023-09 Eclipse
assertTrue(mavenPreferencePage.isDoNotAutoUpdateDepsChecked());
assertTrue(mavenPreferencePage.isDownloadArtifactJavadocChecked());
assertTrue(mavenPreferencePage.isDownloadArtifactSourcesChecked());
assertTrue(mavenPreferencePage.isDownloadRepoIndexOnStartupChecked());
assertTrue(mavenPreferencePage.isHideFoldersOfPhysicalyNestedModulesChecked());
assertTrue(mavenPreferencePage.isOfflineChecked());
assertTrue(mavenPreferencePage.isUpdateMavenProjectsOnStartupChecked());
assertTrue(mavenPreferencePage.isAutoUpdateMavenProjectConfigurationChecked());
assertTrue(mavenPreferencePage.isUseMavenCentralToIdentifyUnkArtifChecked());

preferencesDialog.cancel();
}
Expand All @@ -60,22 +101,26 @@ public void uncheckAllPreferences() {
preferencesDialog.select(mavenPreferencePage);

mavenPreferencePage.setDebugOutput(false);
// mavenPreferencePage.setDoNotAutoUpdateDeps(false); # is not a part of 2023-09 Eclipse
mavenPreferencePage.setDoNotAutoUpdateDeps(false);
mavenPreferencePage.setDownloadArtifactJavadoc(false);
mavenPreferencePage.setDownloadArtifactSources(false);
mavenPreferencePage.setDownloadRepoIndexOnStartup(false);
mavenPreferencePage.setHideFoldersOfPhysicalyNestedModules(false);
mavenPreferencePage.setOffline(false);
mavenPreferencePage.setUpdateMavenProjectsOnStartup(false);
mavenPreferencePage.setAutoUpdateMavenProjectConfiguration(false);
mavenPreferencePage.setUseMavenCentralToIdentifyUnkArtif(false);

assertFalse(mavenPreferencePage.isDebugOutputChecked());
// assertFalse(mavenPreferencePage.isDoNotAutoUpdateDepsChecked()); # is not a part of 2023-09 Eclipse
assertFalse(mavenPreferencePage.isDoNotAutoUpdateDepsChecked());
assertFalse(mavenPreferencePage.isDownloadArtifactJavadocChecked());
assertFalse(mavenPreferencePage.isDownloadArtifactSourcesChecked());
assertFalse(mavenPreferencePage.isDownloadRepoIndexOnStartupChecked());
assertFalse(mavenPreferencePage.isHideFoldersOfPhysicalyNestedModulesChecked());
assertFalse(mavenPreferencePage.isOfflineChecked());
assertFalse(mavenPreferencePage.isUpdateMavenProjectsOnStartupChecked());
assertFalse(mavenPreferencePage.isAutoUpdateMavenProjectConfigurationChecked());
assertFalse(mavenPreferencePage.isUseMavenCentralToIdentifyUnkArtifChecked());

preferencesDialog.cancel();
}
Expand Down

0 comments on commit 0ff4f69

Please sign in to comment.