| 
<?php
 
 use PHPUnit\Framework\TestCase;
 use PHPtricks\Logaty\Helpers\Link;
 
 class LinkTest extends TestCase
 {
 /** @test */
 public function link_property_is_instance_of_link_class()
 {
 $this->assertInstanceOf(Link::class, logaty()->link);
 }
 
 /** @test */
 public function we_can_generate_link()
 {
 $link = logaty()->link('uri');
 $this->assertMatchesRegularExpression('#[-a-zA-Z0-9@:%_\+.~\#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~\#?&//=]*)?#si', $link);
 }
 
 /** @test */
 public function we_can_generate_link_to_custom_uri_with_current_language()
 {
 $link = logaty()->link('page/we/need');
 $this->assertMatchesRegularExpression('#[-a-zA-Z0-9@:%_\+.~\#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~\#?&//=]*)?#si', $link);
 $this->assertStringContainsString(
 logaty()->options('page/we/need') .
 '=' . logaty()->defaultLang(),
 $link
 );
 }
 
 /** @test */
 public function we_can_generate_link_to_custom_uri_with_specified_language()
 {
 $link = logaty()->link('page/we/need', logaty()->defaultLang());
 $this->assertMatchesRegularExpression('#[-a-zA-Z0-9@:%_\+.~\#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~\#?&//=]*)?#si', $link);
 $this->assertStringContainsString(
 logaty()->options('page/we/need') .
 '=' . logaty()->defaultLang(),
 $link
 );
 $this->assertStringContainsString(
 logaty()->options('lang_key') .
 '=' . logaty()->defaultLang(),
 $link
 );
 }
 
 /** @test */
 public function we_can_generate_link_to_current_uri_with_specified_language()
 {
 $link = logaty()->link('', logaty()->defaultLang());
 $this->assertMatchesRegularExpression('#[-a-zA-Z0-9@:%_\+.~\#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~\#?&//=]*)?#si', $link);
 $this->assertStringContainsString(
 logaty()->options('lang_key') .
 '=' . logaty()->defaultLang(),
 $link
 );
 }
 
 /**
 * this test need (hide_default_language) in config/options.php to be false to pass
 */
 /** @test */
 public function we_can_generate_link_to_current_uri_with_current_language()
 {
 $link = logaty()->link();
 $this->assertMatchesRegularExpression('#[-a-zA-Z0-9@:%_\+.~\#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~\#?&//=]*)?#si', $link);
 $this->assertStringContainsString('home', $link);
 }
 }
 
 |