package com.aventstack.extentreports.view.extenthtml; import com.aventstack.extentreports.ExtentReports; import com.aventstack.extentreports.reporter.ExtentHtmlReporter; import com.aventstack.extentreports.utils.Reader; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.testng.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.io.File; import java.lang.reflect.Method; public class AuthorViewVisibilityTests { private static String PATH = "test-output/"; private static String EXT = ".html"; @BeforeClass public void setup() { File file = new File(PATH); if (!file.exists()) { file.mkdirs(); } } @Test public void noTestsHaveAuthorsAuthorViewNotExpected(Method method) { String fileName = PATH + method.getName() + EXT; ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter(fileName); ExtentReports extent = new ExtentReports(); extent.attachReporter(htmlReporter); extent.createTest(method.getName()).pass("Pass"); extent.flush(); String html = Reader.readAllText(fileName); Document doc = Jsoup.parse(html); Assert.assertEquals(doc.select("#author-view").size(), 0); Assert.assertEquals(doc.select("#exception-view").size(), 0); } @Test public void parentTestHasAuthorsAuthorViewExpected(Method method) { String fileName = PATH + method.getName() + EXT; ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter(fileName); ExtentReports extent = new ExtentReports(); extent.attachReporter(htmlReporter); extent.createTest(method.getName()).fail(new RuntimeException("RuntimeException")).assignAuthor("Vimal"); extent.flush(); String html = Reader.readAllText(fileName); Document doc = Jsoup.parse(html); Assert.assertEquals(doc.select("#author-view").size(), 1); Assert.assertEquals(doc.select("#exception-view").size(), 1); } @Test public void childTestHasAuthorsAuthorViewExpected(Method method) { String fileName = PATH + method.getName() + EXT; ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter(fileName); ExtentReports extent = new ExtentReports(); extent.attachReporter(htmlReporter); extent.createTest(method.getName()).createNode("Child").fail(new RuntimeException("RuntimeException")).assignAuthor("Vimal");; extent.flush(); String html = Reader.readAllText(fileName); Document doc = Jsoup.parse(html); Assert.assertEquals(doc.select("#author-view").size(), 1); Assert.assertEquals(doc.select("#exception-view").size(), 1); } @Test public void grandChildTestHasAuthorsAuthorViewExpected(Method method) { String fileName = PATH + method.getName() + EXT; ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter(fileName); ExtentReports extent = new ExtentReports(); extent.attachReporter(htmlReporter); extent.createTest(method.getName()).createNode("Child").createNode("GrandChild").fail(new RuntimeException("RuntimeException")).assignAuthor("Vimal");; extent.flush(); String html = Reader.readAllText(fileName); Document doc = Jsoup.parse(html); Assert.assertEquals(doc.select("#author-view").size(), 1); Assert.assertEquals(doc.select("#exception-view").size(), 1); } }