Newer
Older
use App\MetaGer;
use App\models\parserSkripte\RlvProduct;
use Illuminate\Http\Request;
public function test()
{
$this->fullRunTest();
$this->specialSearchTest();
$this->specialSumaTest();
$this->getHostCountTest();
$this->addLinkTest();
$this->adjustFocusTest();
$this->checkCanNotSitesearchTest();
$this->isBildersucheTest();
$this->loadMiniSucherTest();
$this->getImageProxyLinkTest();
$this->showQuicktipsTest();
$this->popAdTest();
$this->productsTest();
}
{
$metager = new MetaGer();
$request = $this->createDummyRequest();
$metager->parseFormData($request);
$metager->checkSpecialSearches($request);
$metager->createSearchEngines($request);
$metager->rankAll();
$metager->prepareResults();
$metager->createView();
}
public function specialSearchTest()
{
$metager = new MetaGer();
$request = new Request(['eingabe' => 'suchwort -blackword -host:blackhost -domain:blackdomain site:wantsite "i want phrase"']);
$metager->parseFormData($request);
$metager->checkSpecialSearches($request);
$this->assertEquals("wantsite", $metager->getSite());
$this->assertContains("blackhost", $metager->getUserHostBlacklist());
$this->assertContains("blackdomain", $metager->getUserDomainBlacklist());
$this->assertContains("blackword", $metager->getStopWords());
$this->assertContains("i want phrase", $metager->getPhrases());
$metager = new MetaGer();
$request = new Request(['eingabe' => '-site:peter:test -blackword-test -host:blackhost-test.de.nz/test ich suche nach -host:blackhost:blackhost2.cote/t?p=5 "peter ist obst-garten und -bauern"']);
$metager->parseFormData($request);
$metager->checkSpecialSearches($request);
$this->assertEquals("peter:test", $metager->getSite());
$this->assertContains("blackhost:blackhost2.cote/t?p=5", $metager->getUserHostBlacklist());
$this->assertContains("blackhost-test.de.nz/test", $metager->getUserHostBlacklist());
$this->assertContains("blackword-test", $metager->getStopWords());
$this->assertNotContains("bauern", $metager->getStopWords());
$this->assertContains("peter ist obst-garten und -bauern", $metager->getPhrases());
$metager = new MetaGer();
$request = new Request(['eingabe' => '-host:-domain:test']);
$metager->parseFormData($request);
$metager->checkSpecialSearches($request);
$this->assertContains("-domain:test", $metager->getUserHostBlacklist());
$metager = new MetaGer();
$request = new Request(['eingabe' => '"-host:-domain:test"']);
$metager->parseFormData($request);
$metager->checkSpecialSearches($request);
$this->assertContains("-host:-domain:test", $metager->getPhrases());
{
$metager = new MetaGer();
$link = "metager.de";
$this->assertTrue($metager->addLink($link));
$this->assertFalse($metager->addLink($link));
}
{
$metager = new MetaGer();
$suma = new SimpleXMLElement("<suma></suma>");
$suma["name"] = "qualigo";
$this->assertTrue($metager->sumaIsAdsuche($suma, false));
$suma["name"] = "similar_product_ads";
$this->assertTrue($metager->sumaIsAdsuche($suma, false));
$suma["name"] = "rlvproduct";
$this->assertTrue($metager->sumaIsAdsuche($suma, false));
$suma["name"] = "overtureAds";
$this->assertTrue($metager->sumaIsAdsuche($suma, false));
$suma["name"] = "overtureAds";
$this->assertFalse($metager->sumaIsAdsuche($suma, true));
$suma["name"] = "bing";
$this->assertFalse($metager->sumaIsAdsuche($suma, false));
$this->assertFalse($metager->sumaIsDisabled($suma));
$suma["disabled"] = "0";
$this->assertFalse($metager->sumaIsDisabled($suma));
$suma["disabled"] = "1";
$this->assertTrue($metager->sumaIsDisabled($suma));
$suma["name"] = 'overture';
$this->assertTrue($metager->sumaIsOverture($suma));
$suma["name"] = 'overtureAds';
$this->assertTrue($metager->sumaIsOverture($suma));
$suma["name"] = 'bing';
$this->assertFalse($metager->sumaIsOverture($suma));
$suma["name"] = 'qualigo';
$this->assertFalse($metager->sumaIsNotAdsuche($suma));
$suma["name"] = 'similar_product_ads';
$this->assertFalse($metager->sumaIsNotAdsuche($suma));
$suma["name"] = 'overtureAds';
$this->assertFalse($metager->sumaIsNotAdsuche($suma));
$suma["name"] = 'bing';
$this->assertTrue($metager->sumaIsNotAdsuche($suma));
}
{
$metager = new Metager();
$request = new Request(['eingabe' => 'test']);
$metager->parseFormData($request);
$this->containCallbackTester($metager, "generateSearchLink", ["news"],
'focus=news');
$this->containCallbackTester($metager, "generateQuicktipLink", [],
'/qt');
$this->containCallbackTester($metager, "generateSiteSearchLink", ["wolf.de"],
'site%3Awolf.de');
$this->containCallbackTester($metager, "generateRemovedHostLink", ["wolf.de"],
'-host%3Awolf.de');
$this->containCallbackTester($metager, "generateRemovedDomainLink", ["wolf.de"],
'-domain%3Awolf.de');
}
public function getHostCountTest()
{
$metager = new MetaGer();
$host = "host.de";
$before = $metager->getHostCount($host);
$metager->addHostCount($host);
$after = $metager->getHostCount($host);
$this->assertEquals($before + 1, $after);
$before = $after;
$metager->addHostCount($host);
$after = $metager->getHostCount($host);
$this->assertEquals($before + 1, $after);
}
public function adjustFocusTest()
{
$metager = new MetaGer();
$request = new Request(["focus" => "web"]);
$metager->parseFormData($request);
$this->assertEquals("web", $metager->getFokus());
$sumas = simplexml_load_file("tests/testSumas.xml")->xpath("suma"); # Eine spezielle test sumas.xml
$enabledSearchengines = $sumas;
$metager->adjustFocus($sumas, $enabledSearchengines);
$this->assertEquals("bilder", $metager->getFokus());
$metager = new MetaGer();
$request = new Request(["focus" => "web"]);
$metager->parseFormData($request);
$this->assertEquals("web", $metager->getFokus());
$sumas = simplexml_load_file("tests/testSumas2.xml")->xpath("suma"); # Eine spezielle test sumas.xml
$enabledSearchengines = array_slice($sumas, 0, 1);
$metager->adjustFocus($sumas, $enabledSearchengines);
$this->assertEquals("bilder", $metager->getFokus());
}
public function checkCanNotSitesearchTest()
{
$metager = new MetaGer();
$enabledSearchengines = simplexml_load_file("tests/testSumas.xml")->xpath("suma"); # Eine spezielle test sumas.xml
$this->assertFalse($metager->checkCanNotSitesearch($enabledSearchengines));
$metager = new MetaGer();
$request = $this->createDummyRequest();
$metager->parseFormData($request);
$metager->checkSpecialSearches($request);
$this->assertEquals("wantsite", $metager->getSite());
$enabledSearchengines = simplexml_load_file("tests/testSumas2.xml")->xpath("suma"); # Eine spezielle test sumas.xml
$this->assertTrue($metager->checkCanNotSitesearch($enabledSearchengines));
public function isBildersucheTest()
{
$metager = new MetaGer();
$request = new Request(["focus" => "bilder"]);
$metager->parseFormData($request);
$this->assertTrue($metager->isBildersuche());
$metager = new MetaGer();
$request = new Request(["focus" => "web"]);
$metager->parseFormData($request);
$this->assertFalse($metager->isBildersuche());
}
public function loadMiniSucherTest()
{
$metager = new MetaGer();
$sumas = simplexml_load_file("tests/testSumas.xml");
$subcollections = ["minism1", "minism2"];
$minisucher = $metager->loadMiniSucher($sumas, $subcollections);
$this->assertContains("rows=10", $minisucher["formData"]->__toString());
$this->assertContains("fq=subcollection:%28minism1+OR+minism2%29", $minisucher["formData"]->__toString());
}
public function getImageProxyLinkTest()
{
$metager = new MetaGer();
$this->containCallbackTester($metager, "getImageProxyLink", ["www.bilder.de/bild1.png"], "url=www.bilder.de%2Fbild1.png");
}
public function showQuicktipsTest()
{
$metager = new MetaGer();
$request = new Request(["quicktips" => "yo"]);
$metager->parseFormData($request);
$this->assertFalse($metager->showQuicktips());
$metager = new MetaGer();
$request = new Request([]);
$metager->parseFormData($request);
$this->assertTrue($metager->showQuicktips());
}
public function popAdTest()
{
$metager = new MetaGer();
$this->assertNull($metager->popAd());
$engineList = [];
$engineXml = simplexml_load_file("tests/testSumas.xml")->xpath("suma");
$metager = new MetaGer();
$request = new Request(["focus" => "web"]);
$metager->parseFormData($request);
$searchengine = new RlvProduct($engineXml[0], $metager);
$product = new \App\Models\Result(
$engineXml[0],
"Werbetitel",
"Link",
"Anzeigelink",
"Beschreibung",
"Gefunden Von",
42,
false,
"image.png",
4.2,
"Additional Info"
);
$searchengine->ads[] = $product;
$enginesList[] = $searchengine;
$metager->combineResults($enginesList, $metager);
$this->assertEquals("Werbetitel", $metager->popAd()['titel']);
}
public function productsTest()
{
$metager = new MetaGer();
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
$this->assertFalse($metager->hasProducts());
$this->assertEmpty($metager->getProducts());
$engineList = [];
$engineXml = simplexml_load_file("tests/testSumas.xml")->xpath("suma");
$metager = new MetaGer();
$request = new Request(["focus" => "web"]);
$metager->parseFormData($request);
$searchengine = new RlvProduct($engineXml[0], $metager);
$product = new \App\Models\Result(
$engineXml[0],
"Produkttitel",
"Link",
"Anzeigelink",
"Beschreibung",
"Gefunden Von",
42,
false,
"image.png",
4.2,
"Additional Info"
);
$searchengine->products[] = $product;
$enginesList[] = $searchengine;
$metager->combineResults($enginesList, $metager);
$this->assertTrue($metager->hasProducts());
$this->assertEquals("Produkttitel", $metager->getProducts()[0]['titel']);
}
public function createDummyRequest()
{
/**
* Constructor.
*
* @param array $query The GET parameters
* @param array $request The POST parameters
* @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...)
* @param array $cookies The COOKIE parameters
* @param array $files The FILES parameters
* @param array $server The SERVER parameters
* @param string|resource $content The raw body data
*/
#new Request(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null)
$query = [];
$query["eingabe"] = 'suchwort -blackword -host:blackhost -domain:blackdomain site:wantsite "i want phrase"';
$query["focus"] = "angepasst";
$query["encoding"] = "utf8";
$query["lang"] = "all";
$query["time"] = "1000";
$query["sprueche"] = "on";
$query["resultCount"] = "20";
$query["tab"] = "on";
$query["onenewspage"] = "on";
return new Request($query);
}
public function containCallbackTester($object, $funcName, $input, $expectedInOutput)
{
$output = call_user_func_array(array($object, $funcName), $input);
$this->assertContains($expectedInOutput, $output);