Skip to content

Commit

Permalink
#1780 extract duplicate code to a superclass CaseSensitiveTextCondition
Browse files Browse the repository at this point in the history
  • Loading branch information
asolntsev committed Aug 3, 2022
1 parent c941d76 commit 66bb1b6
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 33 deletions.
Original file line number Diff line number Diff line change
@@ -1,34 +1,19 @@
package com.codeborne.selenide.conditions;

import com.codeborne.selenide.Driver;
import com.codeborne.selenide.TextCheck;
import com.codeborne.selenide.impl.Html;
import org.openqa.selenium.WebElement;

import javax.annotation.CheckReturnValue;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;

@ParametersAreNonnullByDefault
public class CaseSensitiveText extends TextCondition {
public class CaseSensitiveText extends CaseSensitiveTextCondition {

public CaseSensitiveText(String expectedText) {
super("text case sensitive", expectedText);
}

@Override
protected boolean match(String actualText, String expectedText) {
throw new UnsupportedOperationException();
}

@Override
protected boolean match(TextCheck textCheck, String actualText, String expectedText) {
return switch (textCheck) {
case FULL_TEXT -> Html.text.equalsCaseSensitive(actualText, expectedText);
case PARTIAL_TEXT -> Html.text.containsCaseSensitive(actualText, expectedText);
};
}

@Nullable
@CheckReturnValue
@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.codeborne.selenide.conditions;

import com.codeborne.selenide.TextCheck;
import com.codeborne.selenide.impl.Html;

import javax.annotation.CheckReturnValue;
import javax.annotation.ParametersAreNonnullByDefault;

@ParametersAreNonnullByDefault
abstract class CaseSensitiveTextCondition extends TextCondition {
protected CaseSensitiveTextCondition(String name, String expectedText) {
super(name, expectedText);
}

@CheckReturnValue
@Override
protected boolean match(String actualText, String expectedText) {
throw new UnsupportedOperationException();
}

@Override
protected boolean match(TextCheck textCheck, String actualText, String expectedText) {
return switch (textCheck) {
case FULL_TEXT -> Html.text.equalsCaseSensitive(actualText, expectedText);
case PARTIAL_TEXT -> Html.text.containsCaseSensitive(actualText, expectedText);
};
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package com.codeborne.selenide.conditions;

import com.codeborne.selenide.Driver;
import com.codeborne.selenide.TextCheck;
import com.codeborne.selenide.impl.Html;
import com.codeborne.selenide.impl.JavaScript;
import org.openqa.selenium.WebElement;

Expand All @@ -11,27 +9,13 @@
import javax.annotation.ParametersAreNonnullByDefault;

@ParametersAreNonnullByDefault
public class SelectedText extends TextCondition {
public class SelectedText extends CaseSensitiveTextCondition {
private final JavaScript js = new JavaScript("get-selected-text.js");

public SelectedText(String expectedText) {
super("selected text", expectedText);
}

@CheckReturnValue
@Override
protected boolean match(String actualText, String expectedText) {
throw new UnsupportedOperationException();
}

@Override
protected boolean match(TextCheck textCheck, String actualText, String expectedText) {
return switch (textCheck) {
case FULL_TEXT -> Html.text.equalsCaseSensitive(actualText, expectedText);
case PARTIAL_TEXT -> Html.text.containsCaseSensitive(actualText, expectedText);
};
}

@Nullable
@CheckReturnValue
@Override
Expand Down

0 comments on commit 66bb1b6

Please sign in to comment.