Skip to content

Commit 1583e82

Browse files
committed
SiteParser.extractImageUrl(): add unit tests.
Addressed to #685 No functional changes.
1 parent 00fddaf commit 1583e82

File tree

2 files changed

+75
-1
lines changed

2 files changed

+75
-1
lines changed

src/main/java/ru/mystamps/web/util/extractor/SiteParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ protected String extractCountry(Element body) {
183183
return country;
184184
}
185185

186-
private String extractImageUrl(Element body) {
186+
protected String extractImageUrl(Element body) {
187187
if (imageUrlLocator == null) {
188188
return null;
189189
}

src/test/java/ru/mystamps/web/util/extractor/SiteParserTest.java

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,80 @@ public void extractCountryShouldReturnTextOfShortDescriptionLocator() {
413413
assertThat(msg, country, equalTo(expectedName));
414414
}
415415

416+
//
417+
// Tests for extractImageUrl()
418+
//
419+
420+
@Test
421+
public void extractImageUrlShouldReturnNullWhenLocatorIsNotSet() {
422+
parser.setImageUrlLocator(null);
423+
Element doc = createEmptyDocument();
424+
425+
String imageUrl = parser.extractImageUrl(doc);
426+
427+
assertThat(imageUrl, is(nullValue()));
428+
}
429+
430+
@Test
431+
public void extractImageUrlShouldReturnNullWhenElementNotFound() {
432+
parser.setImageUrlLocator(Random.jsoupLocator());
433+
Element doc = createEmptyDocument();
434+
435+
String imageUrl = parser.extractImageUrl(doc);
436+
437+
assertThat(imageUrl, is(nullValue()));
438+
}
439+
440+
@Test
441+
public void extractImageUrlShouldReturnValueOfImageUrlAttribute() {
442+
parser.setImageUrlLocator("a");
443+
parser.setImageUrlAttribute("data-full-path");
444+
445+
String expectedImageUrl = Random.url();
446+
String html = String.format(
447+
"<a href='%s' data-full-path='%s'>test</a>",
448+
Random.url(),
449+
expectedImageUrl
450+
);
451+
Element doc = createDocumentFromText(html);
452+
453+
String imageUrl = parser.extractImageUrl(doc);
454+
455+
String msg = String.format("couldn't extract image url from '%s'", doc);
456+
assertThat(msg, imageUrl, equalTo(expectedImageUrl));
457+
}
458+
459+
@Test
460+
public void extractImageUrlShouldReturnValueOfHrefAttributeByDefault() {
461+
parser.setImageUrlLocator("a");
462+
parser.setImageUrlAttribute(null);
463+
464+
String expectedImageUrl = Random.url();
465+
String html = String.format(
466+
"<a href='%s' data-full-path='%s'>test</a>",
467+
expectedImageUrl,
468+
Random.url()
469+
);
470+
Element doc = createDocumentFromText(html);
471+
472+
String imageUrl = parser.extractImageUrl(doc);
473+
474+
String msg = String.format("couldn't extract image url from '%s'", doc);
475+
assertThat(msg, imageUrl, equalTo(expectedImageUrl));
476+
}
477+
478+
@Test
479+
public void extractImageUrlShouldReturnNullInsteadOfEmptyString() {
480+
parser.setImageUrlLocator("a");
481+
482+
String html = "<a href=''>test</a>";
483+
Element doc = createDocumentFromText(html);
484+
485+
String imageUrl = parser.extractImageUrl(doc);
486+
487+
assertThat(imageUrl, is(nullValue()));
488+
}
489+
416490
//
417491
// Tests for extractIssueDate()
418492
//

0 commit comments

Comments
 (0)