www.gusucode.com > Flarum开源的PHP国外手机版论坛 0.1 Beta2 源码程序 > Flarum_v0.1.beta2/extensions/pusher/vendor/pusher/pusher-php-server/test/acceptance/channelQueryTest.php

    <?php
	
	class PusherChannelQueryTest extends PHPUnit_Framework_TestCase
	{

		protected function setUp()
		{
			$this->pusher = new Pusher(PUSHERAPP_AUTHKEY, PUSHERAPP_SECRET, PUSHERAPP_APPID, true, PUSHERAPP_HOST);
			$this->pusher->set_logger( new TestLogger() );
		}

		public function testChannelInfo()
		{
			$response = $this->pusher->get_channel_info('channel-test');
			
			//print_r( $response );
			
			$this->assertObjectHasAttribute('occupied', $response, 'class has occupied attribute');
		}
		
		public function testChannelList()
		{
			$result = $this->pusher->get_channels();
			$channels = $result->channels;
			
			 // print_r( $channels );
			
			foreach( $channels as $channel_name => $channel_info ) {
        echo( "channel_name: $channel_name\n");
        echo( 'channel_info: ' );
        print_r( $channel_info );
        echo( "\n\n");
      }
			
			$this->assertTrue( is_array($channels), 'channels is an array' );
		}
		
		public function testFilterByPrefixNoChannels()
		{
			$options = array(
				'filter_by_prefix' => '__fish'
			);
		  $result = $this->pusher->get_channels( $options );

// print_r( $result );

		  $channels = $result->channels;
		  
		  // print_r( $channels );
		  
			$this->assertTrue( is_array($channels), 'channels is an array' );
			$this->assertEquals( 0, count( $channels ), 'should be an empty array' );
		}

		public function testFilterByPrefixOneChannel()
		{
			$options = array(
				'filter_by_prefix' => 'test_'
			);
		  $result = $this->pusher->get_channels( $options );

// print_r( $result );

		  $channels = $result->channels;
		  
		  // print_r( $channels );
		  
			$this->assertEquals( 1, count( $channels ), 'channels have a single test-channel present. For this test to pass you must have your API Access setting open for the application you are testing against' );
		}


		public function test_providing_info_parameter_with_prefix_query_fails_for_public_channel()
		{
			$options = array(
				'filter_by_prefix' => 'test_',
				'info' => 'user_count'
			);
		  $result = $this->pusher->get_channels( $options );
		  
			$this->assertFalse( $result, 'query should fail' );
		}

		public function test_channel_list_using_generic_get() {
			$response = $this->pusher->get( '/channels' );

			$this->assertEquals( $response[ 'status' ], 200 );

			$result = $response[ 'result' ];

			$channels = $result[ 'channels' ];

			$this->assertEquals( 1, count( $channels ), 'channels have a single test-channel present. For this test to pass you must have your API Access setting open for the application you are testing against' );

			$test_channel = $channels[ 'test_channel' ];

			$this->assertEquals( 0, count( $test_channel ) );
		}

		public function test_channel_list_using_generic_get_and_prefix_param() {
			$response = $this->pusher->get( '/channels', array( 'filter_by_prefix' => 'test_' ) );

			$this->assertEquals( $response[ 'status' ], 200 );

			$result = $response[ 'result' ];

			$channels = $result[ 'channels' ];

			$this->assertEquals( 1, count( $channels ), 'channels have a single test-channel present. For this test to pass you must have your API Access setting open for the application you are testing against' );

			$test_channel = $channels[ 'test_channel' ];

			$this->assertEquals( 0, count( $test_channel ) );
		}

		public function test_single_channel_info_using_generic_get()
		{
			$response = $this->pusher->get( '/channels/channel-test' );

			$this->assertEquals( $response[ 'status' ], 200 );

			$result = $response[ 'result' ];
			
			$this->assertArrayHasKey('occupied', $result, 'class has occupied attribute');
		}
		
	}

?>