| 
<?phpnamespace Jaxon\Tests\Request;
 
 use PHPUnit\Framework\TestCase;
 
 /**
 * @covers Jaxon\Request
 */
 final class RequestTest extends TestCase
 {
 public function testRequestToGlobalFunction()
 {
 $this->assertEquals(
 "testFunction()",
 rq()->func('testFunction')->getScript()
 );
 }
 
 public function testRequestToGlobalFunctionWithParameter()
 {
 $this->assertEquals(
 "testFunction('string', 2, true)",
 rq()->func('testFunction', 'string', 2, true)->getScript()
 );
 }
 
 public function testRequestToGlobalFunctionWithJaxonParameter()
 {
 $this->assertEquals(
 "testFunction('string', 2, true, jaxon.getFormValues('elt_id'), jaxon.$('elt_id').value)",
 rq()->func('testFunction', 'string', 2, true, pr()->form('elt_id'), pr()->input('elt_id'))->getScript()
 );
 }
 
 public function testRequestToJaxonFunction()
 {
 $this->assertEquals(
 "jaxon_testFunction()",
 rq()->call('testFunction')->getScript()
 );
 }
 
 public function testRequestToJaxonFunctionWithParameter()
 {
 $this->assertEquals(
 "jaxon_testFunction('string', 2, true)",
 rq()->call('testFunction', 'string', 2, true)->getScript()
 );
 }
 
 public function testRequestToJaxonFunctionWithJaxonParameter()
 {
 $this->assertEquals(
 "jaxon_testFunction('string', 2, true, jaxon.getFormValues('elt_id'), jaxon.$('elt_id').value)",
 rq()->call('testFunction', 'string', 2, true, pr()->form('elt_id'), pr()->input('elt_id'))->getScript()
 );
 }
 
 public function testRequestToJaxonClass()
 {
 $this->assertEquals(
 "JaxonTest.method()",
 rq()->call('Test.method')->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithParameter()
 {
 $this->assertEquals(
 "JaxonTest.method('string', 2, true)",
 rq()->call('Test.method', 'string', 2, true)->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithFormParameter()
 {
 $this->assertEquals(
 "JaxonTest.method(jaxon.getFormValues('elt_id'))",
 rq()->call('Test.method', pr()->form('elt_id'))->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithInputParameter()
 {
 $this->assertEquals(
 "JaxonTest.method(jaxon.$('elt_id').value)",
 rq()->call('Test.method', pr()->input('elt_id'))->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithCheckedParameter()
 {
 $this->assertEquals(
 "JaxonTest.method(jaxon.$('check_id').checked)",
 rq()->call('Test.method', pr()->checked('check_id'))->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithSelectParameter()
 {
 $this->assertEquals(
 "JaxonTest.method(jaxon.$('select_id').value)",
 rq()->call('Test.method', pr()->select('select_id'))->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithInnerHTMLParameter()
 {
 $this->assertEquals(
 "JaxonTest.method(jaxon.$('elt_id').innerHTML)",
 rq()->call('Test.method', pr()->html('elt_id'))->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithMultipleParameter()
 {
 $this->assertEquals(
 "JaxonTest.method(jaxon.$('check_id').checked, jaxon.$('select_id').value, jaxon.$('elt_id').innerHTML)",
 rq()->call('Test.method', pr()->checked('check_id'), pr()->select('select_id'), pr()->html('elt_id'))->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithConfirmation()
 {
 $this->assertEquals(
 "if(confirm('Really?')){JaxonTest.method(jaxon.$('elt_id').innerHTML);}",
 rq()->call('Test.method', pr()->html('elt_id'))->confirm("Really?")->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithConfirmationAndSubstitution()
 {
 $this->assertEquals(
 "if(confirm('Really M. {1}?'.supplant({'1':jaxon.$('name_id').innerHTML}))){JaxonTest.method(jaxon.$('elt_id').innerHTML);}",
 rq()->call('Test.method', pr()->html('elt_id'))->confirm("Really M. {1}?", pr()->html('name_id'))->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithConditionWhen()
 {
 $this->assertEquals(
 "if(jaxon.$('cond_id').checked){JaxonTest.method(jaxon.$('elt_id').innerHTML);}",
 rq()->call('Test.method', pr()->html('elt_id'))->when(pr()->checked('cond_id'))->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithConditionWhenAndMessage()
 {
 $this->assertEquals(
 "if(jaxon.$('cond_id').checked){JaxonTest.method(jaxon.$('elt_id').innerHTML);}" .
 "else{alert('Please check the option');}",
 rq()->call('Test.method', pr()->html('elt_id'))
 ->when(pr()->checked('cond_id'))
 ->elseShow("Please check the option")->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithConditionWhenAndMessageAndSubstitution()
 {
 $this->assertEquals(
 "if(jaxon.$('cond_id').checked){JaxonTest.method(jaxon.$('elt_id').innerHTML);}else" .
 "{alert('M. {1}, please check the option'.supplant({'1':jaxon.$('name_id').innerHTML}));}",
 rq()->call('Test.method', pr()->html('elt_id'))
 ->when(pr()->checked('cond_id'))
 ->elseShow("M. {1}, please check the option", pr()->html('name_id'))->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithConditionUnless()
 {
 $this->assertEquals(
 "if(!(jaxon.$('cond_id').checked)){JaxonTest.method(jaxon.$('elt_id').innerHTML);}",
 rq()->call('Test.method', pr()->html('elt_id'))
 ->unless(pr()->checked('cond_id'))->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithConditionUnlessAndMessage()
 {
 $this->assertEquals(
 "if(!(jaxon.$('cond_id').checked)){JaxonTest.method(jaxon.$('elt_id').innerHTML);}" .
 "else{alert('Please uncheck the option');}",
 rq()->call('Test.method', pr()->html('elt_id'))
 ->unless(pr()->checked('cond_id'))
 ->elseShow("Please uncheck the option")->getScript()
 );
 }
 
 public function testRequestToJaxonClassWithConditionUnlessAndMessageAndSubstitution()
 {
 $this->assertEquals(
 "if(!(jaxon.$('cond_id').checked)){JaxonTest.method(jaxon.$('elt_id').innerHTML);}" .
 "else{alert('M. {1}, please uncheck the option'.supplant({'1':jaxon.$('name_id').innerHTML}));}",
 rq()->call('Test.method', pr()->html('elt_id'))
 ->unless(pr()->checked('cond_id'))
 ->elseShow("M. {1}, please uncheck the option", pr()->html('name_id'))->getScript()
 );
 }
 }
 
 |