How to use setConfig method of com.galenframework.actions.GalenActionMutateArguments class

Best Galen code snippet using com.galenframework.actions.GalenActionMutateArguments.setConfig

Source:ArgumentParserTest.java Github

copy

Full Screen

...138 .setPaths(asList("mysuite", "mysuite2"))139 .setRecursive(false)140 .setIncludedTags(EMPTY_TAGS)141 .setExcludedTags(EMPTY_TAGS)142 .setConfig("/some/config")143 },144 };145 }146 @Test(dataProvider = "goodSamples_simpleActions")147 public void shouldParse_simpleActions(String firstArg, Class<?>expectedType) {148 GalenAction action = GalenAction.create(firstArg, new String[]{}, System.out, System.err, NO_LISTENER);149 assertThat(action, is(instanceOf(expectedType)));150 }151 @DataProvider152 public Object[][] goodSamples_simpleActions() {153 return new Object[][] {154 {"config", GalenActionConfig.class},155 {"help", GalenActionHelp.class},156 {"-h", GalenActionHelp.class},157 {"--help", GalenActionHelp.class},158 {"version", GalenActionVersion.class},159 {"-v", GalenActionVersion.class},160 {"--version", GalenActionVersion.class}161 };162 }163 @Test164 public void shouldParse_dumpAction() {165 GalenActionDump action = (GalenActionDump) GalenAction.create("dump",166 new String[]{"my-page.gspec", "--url", "http://mindengine.net", "--export", "export-page-dir", "--max-width", "100", "--max-height", "150"},167 System.out, System.err, NO_LISTENER);168 assertThat(action.getDumpArguments(), is(new GalenActionDumpArguments()169 .setPaths(asList("my-page.gspec"))170 .setUrl("http://mindengine.net")171 .setExport("export-page-dir")172 .setMaxWidth(100)173 .setMaxHeight(150)));174 }175 @Test176 public void shouldParse_dumpAction_withConfig() {177 GalenActionDump action = (GalenActionDump) GalenAction.create("dump",178 new String[]{"my-page.gspec",179 "--url", "http://mindengine.net",180 "--export", "export-page-dir",181 "--max-width", "100",182 "--max-height", "150",183 "--config", "/some/config"184 },185 System.out, System.err, NO_LISTENER);186 assertThat(action.getDumpArguments(), is(new GalenActionDumpArguments()187 .setPaths(asList("my-page.gspec"))188 .setUrl("http://mindengine.net")189 .setExport("export-page-dir")190 .setMaxWidth(100)191 .setMaxHeight(150)192 .setConfig("/some/config")193 ));194 }195 @Test196 public void should_parse_generate_action() {197 GalenActionGenerate action = (GalenActionGenerate) GalenAction.create("generate",198 new String []{199 "path/to/some/page-dump.json",200 "--export", "destination.gspec"201 },202 System.out, System.err, NO_LISTENER203 );204 assertThat(action.getGenerateArguments(), is(new GalenActionGenerateArguments()205 .setPath("path/to/some/page-dump.json")206 .setExport("destination.gspec")207 ));208 }209 @Test210 public void should_parse_generate_action_with_galenextras_disabled() {211 GalenActionGenerate action = (GalenActionGenerate) GalenAction.create("generate",212 new String []{213 "path/to/some/page-dump.json",214 "--export", "destination.gspec",215 "--no-galen-extras"216 },217 System.out, System.err, NO_LISTENER218 );219 assertThat(action.getGenerateArguments(), is(new GalenActionGenerateArguments()220 .setPath("path/to/some/page-dump.json")221 .setExport("destination.gspec")222 .setUseGalenExtras(false)223 ));224 }225 @Test(dataProvider = "goodSamples_checkAction")226 public void shouldParse_checkActionArguments(SimpleArguments args, GalenActionCheckArguments expectedArguments) {227 String actionName = args.args[0];228 String[] arguments = ArrayUtils.subarray(args.args, 1, args.args.length);229 GalenActionCheck action = (GalenActionCheck) GalenAction.create(actionName, arguments, System.out, System.err, NO_LISTENER);230 assertThat(action.getCheckArguments(), is(expectedArguments));231 }232 @DataProvider233 public Object[][] goodSamples_checkAction() {234 return new Object[][]{235 {args("check", "some.spec",236 "--url", "http://mindengine.net",237 "--javascript", "some.js",238 "--include", "mobile,all",239 "--exclude", "nomobile,testTag",240 "--size", "400x700",241 "--htmlreport", "some.html",242 "--testngreport", "testng.xml",243 "--junitreport", "junit.xml"),244 new GalenActionCheckArguments()245 .setUrl("http://mindengine.net")246 .setJavascript("some.js")247 .setIncludedTags(asList("mobile", "all"))248 .setExcludedTags(asList("nomobile", "testTag"))249 .setScreenSize(new Dimension(400, 700))250 .setPaths(asList("some.spec"))251 .setHtmlReport("some.html")252 .setTestngReport("testng.xml")253 .setJunitReport("junit.xml")254 },255 {args("check", "some.spec",256 "--url", "http://mindengine.net",257 "--include", "mobile,all",258 "--exclude", "nomobile,testTag",259 "--size", "400x700",260 "--htmlreport", "some.html"),261 new GalenActionCheckArguments()262 .setUrl("http://mindengine.net")263 .setIncludedTags(asList("mobile", "all"))264 .setExcludedTags(asList("nomobile", "testTag"))265 .setScreenSize(new Dimension(400, 700))266 .setPaths(asList("some.spec"))267 .setHtmlReport("some.html")268 },269 {args("check", "some1.spec", "some2.spec", "--url", "http://mindengine.net"),270 new GalenActionCheckArguments()271 .setUrl("http://mindengine.net")272 .setPaths(asList("some1.spec", "some2.spec"))273 },274 {args("check", "some1.spec", "some2.spec", "--url", "http://mindengine.net", "--config", "/some/config"),275 new GalenActionCheckArguments()276 .setUrl("http://mindengine.net")277 .setPaths(asList("some1.spec", "some2.spec"))278 .setConfig("/some/config")279 },280 {args("check", "some1.spec", "--url", "http://mindengine.net", "--config", "/some/config", "--section", "Main*"),281 new GalenActionCheckArguments()282 .setUrl("http://mindengine.net")283 .setPaths(asList("some1.spec"))284 .setSectionNameFilter("Main*")285 .setConfig("/some/config")286 },287 };288 }289 290 291 @Test(dataProvider="provideBadSamples")292 public void shouldGiveError_forIncorrectArguments(String expectedErrorMessage, SimpleArguments args) throws ParseException {293 IllegalArgumentException exception = null;294 try {295 String actionName = args.args[0];296 String[] arguments = ArrayUtils.subarray(args.args, 1, args.args.length);297 GalenAction.create(actionName, arguments, System.out, System.err, NO_LISTENER);298 }299 catch(IllegalArgumentException ex) {...

Full Screen

Full Screen

Source:GalenActionMutateArguments.java Github

copy

Full Screen

...70 arguments.setJunitReport(cmd.getOptionValue("x"));71 arguments.setIncludedTags(convertTags(cmd.getOptionValue("i")));72 arguments.setExcludedTags(convertTags(cmd.getOptionValue("e")));73 arguments.setPaths(asList(cmd.getArgs()));74 arguments.setConfig(cmd.getOptionValue("c"));75 arguments.getMutationOptions().setPositionOffset(Integer.parseInt(cmd.getOptionValue("o", "5")));76 if (arguments.getPaths().isEmpty()) {77 throw new IllegalArgumentException("Missing spec files");78 }79 return arguments;80 }81 public List<String> getPaths() {82 return paths;83 }84 public GalenActionMutateArguments setPaths(List<String> paths) {85 this.paths = paths;86 return this;87 }88 public List<String> getIncludedTags() {89 return includedTags;90 }91 public GalenActionMutateArguments setIncludedTags(List<String> includedTags) {92 this.includedTags = includedTags;93 return this;94 }95 public List<String> getExcludedTags() {96 return excludedTags;97 }98 public GalenActionMutateArguments setExcludedTags(List<String> excludedTags) {99 this.excludedTags = excludedTags;100 return this;101 }102 public String getUrl() {103 return url;104 }105 public GalenActionMutateArguments setUrl(String url) {106 this.url = url;107 return this;108 }109 public Dimension getScreenSize() {110 return screenSize;111 }112 public GalenActionMutateArguments setScreenSize(Dimension screenSize) {113 this.screenSize = screenSize;114 return this;115 }116 public String getConfig() {117 return config;118 }119 public GalenActionMutateArguments setConfig(String config) {120 this.config = config;121 return this;122 }123 public String getJavascript() {124 return javascript;125 }126 public GalenActionMutateArguments setJavascript(String javascript) {127 this.javascript = javascript;128 return this;129 }130 public GalenActionMutateArguments setHtmlReport(String htmlReport) {131 this.htmlReport = htmlReport;132 return this;133 }...

Full Screen

Full Screen

setConfig

Using AI Code Generation

copy

Full Screen

1package com.galenframework.actions;2import com.galenframework.api.Galen;3import com.galenframework.reports.TestReport;4import com.galenframework.reports.model.LayoutReport;5import com.galenframework.speclang2.pagespec.SectionFilter;6import com.galenframework.speclang2.pagespec.SectionFilters;7import com.galenframework.speclang2.pagespec.SectionFiltersBuilder;8import com.galenframework.specs.page.Locator;9import com.galenframework.specs.page.PageSpec;10import com.galenframework.specs.page.PageSpecReader;11import com.galenframework.specs.page.PageSpecReaderException;12import com.galenframework.browser.Browser;13import com.galenframework.browser.SeleniumBrowser;14import com.galenframework.browser.SeleniumBrowserFactory;15import com.galenframework.browser.SeleniumBrowserFactoryException;16import com.galenframework.browser.SeleniumBrowserFactory;17import com.galenframework.components.JsErrorListener;18import com.galenframework.components.validation.ValidationListener;19import com.galenframework.components.validation.ValidationResult;20import com.galenframework.components.validation.ValidationResultBuilder;21import com.galenframework.components.validation.ValidationResultType;22import com.galenframework.components.validation.ValidationResults;23import com.galenframework.components.validation.ValidationResultsBuilder;24import com.galenframework.components.validation.ValidationResultsBuilder;25import com.galenframework.components.validation.ValidationResultsListener;26import com.gal

Full Screen

Full Screen

setConfig

Using AI Code Generation

copy

Full Screen

1package com.galenframework.actions;2import com.galenframework.api.Galen;3import com.galenframework.reports.model.LayoutReport;4import com.galenframework.specs.Spec;5import com.galenframework.specs.page.PageSection;6import com.galenframework.specs.reader.page.PageSpecReader;7import com.galenframework.validation.ValidationObject;8import com.galenframework.validation.ValidationResult;9import com.galenframework.validation.ValidationError;10import com.galenframework.validation.ValidationListener;11import org.openqa.selenium.WebDriver;12import java.io.IOException;13import java.util.LinkedList;14import java.util.List;15public class GalenActionMutateArguments extends GalenAction {16 private String configFilePath;17 public GalenActionMutateArguments() {18 super("mutateArguments");19 }20 public void execute(GalenActionArguments arguments) throws IOException {21 configFilePath = arguments.getStringArgument("configFilePath");22 System.out.println("configFilePath: " + configFilePath);23 arguments.setConfigFilePath(configFilePath);24 }25 public String getConfigFilePath() {26 return configFilePath;27 }28 public void setConfigFilePath(String configFilePath) {29 this.configFilePath = configFilePath;30 }31}32package com.galenframework.api;33import com.galenframework.actions.GalenActionArguments;34import com.galenframework.browser.Browser;35import com.galenframework.browser.BrowserFactory;36import com.galenframework.browser.SeleniumBrowser;37import com.galenframework.components.JsErrorCollector;38import com.galenframework.components.validation.MockedValidationListener;39import com.galenframework.components.validation.ValidationListener;40import com.galenframework.config.GalenConfig;41import com.galenframework.reports.GalenTestInfo;42import com.galenframework.reports.TestReport;43import com.galenframework.reports.TestReportGenerator;44import com.galenframework.reports.TestReportGeneratorFactory;45import com.galenframework.reports.model.LayoutReport;46import com.galenframework.reports.model.LayoutReportStatus;47import com.galenframework.reports.model.LayoutReportStatusDetails;48import com.galenframework.reports.model.LayoutReportSummary;49import com.galenframework.runner.GalenBasicTest;50import com.galenframework.runner.GalenPageTest;51import com.galenframework.runner.GalenTest;52import

Full Screen

Full Screen

setConfig

Using AI Code Generation

copy

Full Screen

1package com.galenframework.java.sample.tests;2import com.galenframework.api.Galen;3import com.galenframework.reports.model.LayoutReport;4import com.galenframework.specs.page.PageSpec;5import org.openqa.selenium.WebDriver;6import org.openqa.selenium.chrome.ChromeDriver;7import org.testng.annotations.Test;8import java.io.IOException;9public class GalenActionMutateArgumentsTest {10 public void galenActionMutateArgumentsTest() throws IOException {11 WebDriver driver = new ChromeDriver();12 PageSpec pageSpec = Galen.loadSpec("specs/galenActionMutateArgumentsTest.spec");13 GalenActionMutateArguments.setConfig("config/galenActionMutateArgumentsTest.config");14 LayoutReport layoutReport = Galen.checkLayout(driver, pageSpec, null);15 System.out.println(layoutReport);16 driver.close();17 }18}19@import "galenActionMutateArgumentsTest.config"20@set color = ${value}21@test object {22 color: ${color};23}24package com.galenframework.java.sample.tests;25import com.galenframework.api.Galen;26import com.galenframework.reports.model.LayoutReport;27import com.galenframework.specs.page.PageSpec;28import org.openqa.selenium.WebDriver;29import org.openqa.selenium.chrome.ChromeDriver;30import org.testng.annotations.Test;31import java.io.IOException;32public class GalenActionMutateArgumentsTest {33 public void galenActionMutateArgumentsTest() throws IOException {34 WebDriver driver = new ChromeDriver();

Full Screen

Full Screen

setConfig

Using AI Code Generation

copy

Full Screen

1package com.galenframework.actions;2import java.util.List;3import com.galenframework.api.Galen;4import com.galenframework.reports.TestReport;5import com.galenframework.speclang2.pagespec.SectionFilter;6import com.galenframework.specs.page.PageSpec;7import com.galenframework.specs.page.PageSpecReader;8import com.galenframework.specs.page.PageSection;9import com.galenframework.validation.ValidationListener;10import com.galenframework.validation.ValidationObject;11import com.galenframework.validation.ValidationResult;12import com.galenframework.validation.ValidationResult.ValidationError;13import com.galenframework.validation.ValidationResult.ValidationErrorLevel;14import com.galenframework.validation.Validator;15import com.galenframework.validation.ValidatorFactory;16public class GalenActionMutateArguments {17 private String config;18 private String specPath;19 private String pagePath;20 private String sectionName;21 private String deviceName;22 private String tags;23 private String reportPath;24 private String reportFormat;25 private String browser;26 private String browserSize;27 private String url;28 private String actions;29 private String javascript;30 private String layoutReportPath;31 private String layoutReportFormat;32 private String layoutReportCheckboxes;33 private String layoutReportSections;34 private String layoutReportTags;35 private String layoutReportValidationLevel;36 private String layoutReportValidationIgnore;37 private String layoutReportValidationStrict;38 private String layoutReportValidationErrors;39 private String layoutReportValidationWarnings;40 private String layoutReportValidationInfos;41 private String layoutReportValidationErrorsPerPage;42 private String layoutReportValidationWarningsPerPage;43 private String layoutReportValidationInfosPerPage;44 private String layoutReportValidationErrorsPerPagePath;45 private String layoutReportValidationWarningsPerPagePath;46 private String layoutReportValidationInfosPerPagePath;47 private String layoutReportValidationErrorsPerPageName;48 private String layoutReportValidationWarningsPerPageName;49 private String layoutReportValidationInfosPerPageName;50 private String layoutReportValidationErrorsPerPageFormat;51 private String layoutReportValidationWarningsPerPageFormat;52 private String layoutReportValidationInfosPerPageFormat;53 private String layoutReportValidationErrorsPerPagePathName;54 private String layoutReportValidationWarningsPerPagePathName;55 private String layoutReportValidationInfosPerPagePathName;56 private String layoutReportValidationErrorsPerPagePathFormat;57 private String layoutReportValidationWarningsPerPagePathFormat;

Full Screen

Full Screen

setConfig

Using AI Code Generation

copy

Full Screen

1package com.galenframework.java.sample.tests;2import com.galenframework.java.sample.components.GalenTestBase;3import com.galenframework.reports.GalenTestInfo;4import com.galenframework.reports.model.LayoutReport;5import com.galenframework.specs.page.PageSpec;6import org.testng.annotations.Test;7import java.io.IOException;8import java.util.Arrays;9import java.util.List;10import static java.util.Arrays.asList;11import static org.hamcrest.MatcherAssert.assertThat;12import static org.hamcrest.Matchers.lessThan;13public class GalenJavaTest extends GalenTestBase {14 @Test(dataProvider = "devices")15 public void testPageLayout(Device device) throws IOException {16 load(GalenTestBase.TEST_URL);17 checkLayout("/specs/example.spec", device.getTags());18 }19 public void shouldCheckLayoutOfMainPage() throws IOException {20 load(GalenTestBase.TEST_URL);21 checkLayout("/specs/example.spec", Arrays.asList("desktop"));22 }23 public void shouldCheckLayoutOfMainPage1() throws IOException {24 load(GalenTestBase.TEST_URL);25 checkLayout("/specs/example.spec", Arrays.asList("mobile"));26 }27 public void shouldCheckLayoutOfMainPage2() throws IOException {28 load(GalenTestBase.TEST_URL);29 checkLayout("/specs/example.spec", Arrays.asList("tablet"));30 }31 public void shouldCheckLayoutOfMainPage3() throws IOException {32 load(GalenTestBase.TEST_URL);33 checkLayout("/specs/example.spec", Arrays.asList("desktop"));34 }35 public void shouldCheckLayoutOfMainPage4() throws IOException {36 load(GalenTestBase.TEST_URL);37 checkLayout("/specs/example.spec", Arrays.asList("mobile"));38 }39 public void shouldCheckLayoutOfMainPage5() throws IOException {40 load(GalenTestBase.TEST_URL);41 checkLayout("/specs/example.spec", Arrays.asList("tablet"));42 }43 public void shouldCheckLayoutOfMainPage6() throws IOException {44 load(GalenTestBase.TEST_URL);45 checkLayout("/specs/example.spec", Arrays.asList("desktop"));46 }47 public void shouldCheckLayoutOfMainPage7() throws IOException {48 load(GalenTestBase.TEST_URL);49 checkLayout("/specs/example.spec", Arrays.asList("mobile"));

Full Screen

Full Screen

setConfig

Using AI Code Generation

copy

Full Screen

1public class GalenActionMutateArgumentsTest {2 public static void main(String[] args) throws IOException {3 String specPath = "specs/1.spec";4 String suitePath = "suites/1.suite";5 String[] args1 = { "test", suitePath, "--htmlreport", "reports/htmlreport", "--testngreport", "reports/testngreport", "--config", "browser=chrome", "--config", "screenSize=1440x900" };6 String[] args2 = { "test", specPath, "--htmlreport", "reports/htmlreport", "--testngreport", "reports/testngreport", "--config", "browser=chrome", "--config", "screenSize=1440x900" };7 String[] args7 = { "test", specPath, "--htmlreport", "reports/htmlreport", "--testngreport", "reports/testngreport", "--config",

Full Screen

Full Screen

setConfig

Using AI Code Generation

copy

Full Screen

1package com.galenframework.tests;2import com.galenframework.actions.GalenActionMutateArguments;3import com.galenframework.api.Galen;4import com.galenframework.api.GalenPageAction;5import com.galenframework.browser.Browser;6import com.galenframework.browser.SeleniumBrowser;7import com.galenframework.browser.SeleniumBrowserFactory;8import com.galenframework.browser.SeleniumBrowserFactoryBuilder;9import com.galenframework.reports.GalenTestInfo;10import com.galenframework.reports.HtmlReportBuilder;11import com.galenframework.reports.model.LayoutReport;12import com.galenframework.speclang2.pagespec.PageSpec;13import com.galenframework.specs.page.Locator;14import com.galenframework.specs.page.PageSpecReader;15import com.galenframework.specs.reader.page.GalenPageSpecReader;16import com.galenframework.specs.reader.page.PageSpecReaderException;17import com.galenframework.validation.ValidationListener;18import com.galenframework.validation.ValidationResult;19import com.galenframework.validation.ValidationError;20import com.galenframework.validation.ValidationObject;21import com.galenframework.validation.ValidationResult.ValidationErrorLevel;22import com.google.common.base.Optional;23import com.google.common.base.Splitter;24import com.google.common.collect.Lists;25import com.google.common.collect.Maps;26import com.google.common.collect.Sets;27import org.openqa.selenium.By;28import org.openqa.selenium.Dimension;29import org.openqa.selenium.WebDriver;30import org.openqa.selenium.WebElement;31import org.openqa.selenium.chrome.ChromeDriver;32import org.openqa.selenium.chrome.ChromeOptions;33import org.openqa.selenium.firefox.FirefoxDriver;34import org.openqa.selenium.firefox.FirefoxProfile;35import org.openqa.selenium.ie.InternetExplorerDriver;36import org.openqa.selenium.remote.DesiredCapabilities;37import org.openqa.selenium.remote.RemoteWebDriver;38import org.openqa.selenium.safari.SafariDriver;39import org.openqa.selenium.support.ui.ExpectedCondition;40import org.openqa.selenium.support.ui.WebDriverWait;41import org.testng.annotations.Test;42import org.testng.annotations.BeforeMethod;43import org.testng.annotations.AfterMethod;44import java.io.File;45import java.io.IOException;46import java.net.URL;47import java.util.List;48import java.util.Map;49import java.util.Set;50import java.util.concurrent.TimeUnit;51import static com.galenframework.browser.SeleniumBrowserFactoryBuilder.ff;52import static com.galenframework.browser.SeleniumBrowserFactoryBuilder.ie;53import static com.galenframework.browser

Full Screen

Full Screen

setConfig

Using AI Code Generation

copy

Full Screen

1public class GalenActionMutateArguments {2 public static void main(String[] args) throws IOException {3 String path1 = "C:\\Users\\Admin\\Desktop\\Galen\\galen\\galen-java\\galen-core\\src\\test\\resources\\specs\\homepage.spec";4 String path2 = "C:\\Users\\Admin\\Desktop\\Galen\\galen\\galen-java\\galen-core\\src\\test\\resources\\specs\\homepage1.spec";5 String path3 = "C:\\Users\\Admin\\Desktop\\Galen\\galen\\galen-java\\galen-core\\src\\test\\resources\\specs\\homepage2.spec";6 String path4 = "C:\\Users\\Admin\\Desktop\\Galen\\galen\\galen-java\\galen-core\\src\\test\\resources\\specs\\homepage3.spec";7 String path5 = "C:\\Users\\Admin\\Desktop\\Galen\\galen\\galen-java\\galen-core\\src\\test\\resources\\specs\\homepage4.spec";8 String path6 = "C:\\Users\\Admin\\Desktop\\Galen\\galen\\galen-java\\galen-core\\src\\test\\resources\\specs\\homepage5.spec";9 String path7 = "C:\\Users\\Admin\\Desktop\\Galen\\galen\\galen-java\\galen-core\\src\\test\\resources\\specs\\homepage6.spec";10 String path8 = "C:\\Users\\Admin\\Desktop\\Galen\\galen\\galen-java\\galen-core\\src\\test\\resources\\specs\\homepage7.spec";11 String path9 = "C:\\Users\\Admin\\Desktop\\Galen\\galen\\galen-java\\galen-core\\src\\test\\resources\\specs\\homepage8.spec";12 String path10 = "C:\\Users\\Admin\\Desktop\\Galen\\galen\\galen-java\\galen-core\\src\\test\\resources\\specs\\homepage9.spec";13 String path11 = "C:\\Users\\Admin\\Desktop\\Galen\\galen\\galen-java\\galen-core\\src\\test\\resources\\specs\\homepage10.spec";

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful