first
This commit is contained in:
@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
class MixpanelBaseProducerTest extends PHPUnit_Framework_TestCase {
|
||||
|
||||
/**
|
||||
* @var _Producers_MixpanelBaseProducer
|
||||
*/
|
||||
protected $_instance = null;
|
||||
protected $_file = null;
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
$this->_file = dirname(__FILE__)."/output-".time().".txt";
|
||||
$this->_instance = new _Producers_MixpanelBaseProducer("token", array("consumer" => "file", "debug" => true, "file" => $this->_file));
|
||||
}
|
||||
|
||||
protected function tearDown() {
|
||||
parent::tearDown();
|
||||
$this->_instance->reset();
|
||||
$this->_instance = null;
|
||||
@unlink($this->_file);
|
||||
}
|
||||
|
||||
public function testTokenMatch() {
|
||||
$this->assertEquals("token", $this->_instance->getToken());
|
||||
}
|
||||
|
||||
public function testFlush() {
|
||||
$event1 = array("event" => "test", "properties" => array("prop1" => "val1"));
|
||||
$event2 = array("event" => "test2", "properties" => array("prop2" => "val2"));
|
||||
$this->_instance->enqueue($event1);
|
||||
$this->_instance->enqueue($event2);
|
||||
$this->_instance->flush(1);
|
||||
$contents = file_get_contents($this->_file);
|
||||
$this->assertEquals('[{"event":"test","properties":{"prop1":"val1"}}]'."\n".
|
||||
'[{"event":"test2","properties":{"prop2":"val2"}}]'."\n", $contents);
|
||||
}
|
||||
|
||||
public function testReset() {
|
||||
$event1 = array("event" => "test", "properties" => array("prop1" => "val1"));
|
||||
$this->_instance->enqueue($event1);
|
||||
$this->_instance->reset();
|
||||
$this->assertEmpty($this->_instance->getQueue());
|
||||
}
|
||||
|
||||
public function testEnqueue() {
|
||||
$this->_instance->reset();
|
||||
$event1 = array("event" => "test", "properties" => array("prop1" => "val1"));
|
||||
$this->_instance->enqueue($event1);
|
||||
$queue = $this->_instance->getQueue();
|
||||
$this->assertCount(1, $queue);
|
||||
$this->assertEquals($event1, $queue[0]);
|
||||
}
|
||||
|
||||
public function testEnqueueAll() {
|
||||
$this->_instance->reset();
|
||||
$event1 = array("event" => "test", "properties" => array("prop1" => "val1"));
|
||||
$event2 = array("event" => "test2", "properties" => array("prop1" => "val1"));
|
||||
$events = array($event1, $event2);
|
||||
$this->_instance->enqueueAll($events);
|
||||
$queue = $this->_instance->getQueue();
|
||||
$this->assertCount(2, $queue);
|
||||
$this->assertEquals($event1, $queue[0]);
|
||||
$this->assertEquals($event2, $queue[1]);
|
||||
}
|
||||
|
||||
public function testSetMaxQueueSize() {
|
||||
$this->_instance->enqueue(array("event" => "test"));
|
||||
$queue = $this->_instance->getQueue();
|
||||
$this->assertEquals(1, count($queue));
|
||||
$this->_instance->flush();
|
||||
$new_instance = new Producers_MixpanelEvents("token", array('max_queue_size' => 0));
|
||||
$new_instance->track("test");
|
||||
$queue = $new_instance->getQueue();
|
||||
$this->assertEquals(0, count($queue));
|
||||
}
|
||||
}
|
||||
|
||||
// stub for tests
|
||||
class _Producers_MixpanelBaseProducer extends Producers_MixpanelBaseProducer {
|
||||
function _getEndpoint() {
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
class ConsumerStrategies_AbstractConsumerTest extends PHPUnit_Framework_TestCase {
|
||||
|
||||
/**
|
||||
* @var AbstractConsumer
|
||||
*/
|
||||
protected $_instance = null;
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->_instance = new AbstractConsumer();
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
$this->_instance = null;
|
||||
}
|
||||
|
||||
public function test_encode() {
|
||||
$encoded = base64_encode(json_encode(array("1" => "one")));
|
||||
$this->assertEquals($encoded, $this->_instance->encode(array("1" => "one")));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class AbstractConsumer extends ConsumerStrategies_AbstractConsumer {
|
||||
/**
|
||||
* Persist a batch of messages in whatever way the implementer sees fit
|
||||
* @param array $batch an array of messages to consume
|
||||
* @return boolean success or fail
|
||||
*/
|
||||
function persist($batch)
|
||||
{
|
||||
// TODO: Implement persist() method.
|
||||
}
|
||||
|
||||
function encode($msg) {
|
||||
return $this->_encode($msg);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,151 @@
|
||||
<?php
|
||||
|
||||
class ConsumerStrategies_CurlConsumerTest extends PHPUnit_Framework_TestCase {
|
||||
|
||||
public function testSettings() {
|
||||
$consumer = new CurlConsumer(array(
|
||||
"host" => "localhost",
|
||||
"endpoint" => "/endpoint",
|
||||
"timeout" => 2,
|
||||
"use_ssl" => false,
|
||||
"fork" => false
|
||||
));
|
||||
|
||||
$this->assertEquals("localhost", $consumer->getHost());
|
||||
$this->assertEquals("/endpoint", $consumer->getEndpoint());
|
||||
$this->assertEquals(2, $consumer->getTimeout());
|
||||
$this->assertEquals("http", $consumer->getProtocol());
|
||||
$this->assertEquals(false, $consumer->getFork());
|
||||
}
|
||||
|
||||
public function testBlocking() {
|
||||
$consumer = new CurlConsumer(array(
|
||||
"host" => "localhost",
|
||||
"endpoint" => "/endpoint",
|
||||
"timeout" => 2,
|
||||
"use_ssl" => true,
|
||||
"fork" => false
|
||||
));
|
||||
$consumer->persist(array("msg"));
|
||||
$this->assertEquals(1, $consumer->blockingCalls);
|
||||
}
|
||||
|
||||
public function testForked() {
|
||||
$consumer = new CurlConsumer(array(
|
||||
"host" => "localhost",
|
||||
"endpoint" => "/endpoint",
|
||||
"timeout" => 2,
|
||||
"use_ssl" => true,
|
||||
"fork" => true
|
||||
));
|
||||
$consumer->persist(array("msg"));
|
||||
$this->assertEquals(1, $consumer->forkedCalls);
|
||||
}
|
||||
|
||||
public function testExecuteCurlFailure() {
|
||||
$error_handler = new ErrorHandler();
|
||||
$consumer = new ConsumerStrategies_CurlConsumer(array(
|
||||
"host" => "some.domain.that.should.not.ever.exist.tld",
|
||||
"endpoint" => "/endpoint",
|
||||
"timeout" => 2,
|
||||
"use_ssl" => false,
|
||||
"fork" => false,
|
||||
"error_callback" => array($error_handler, 'handle_error')
|
||||
));
|
||||
$resp = $consumer->persist(array("msg"));
|
||||
$this->assertFalse($resp);
|
||||
$this->assertEquals($error_handler->last_code, CURLE_COULDNT_RESOLVE_HOST);
|
||||
}
|
||||
|
||||
public function testOptions() {
|
||||
function callback() { }
|
||||
|
||||
$consumer = new ConsumerStrategies_CurlConsumer(array(
|
||||
"host" => "localhost",
|
||||
"endpoint" => "/endpoint",
|
||||
"timeout" => 2,
|
||||
"connect_timeout" => 1,
|
||||
"use_ssl" => true,
|
||||
"fork" => false,
|
||||
"num_threads" => 5,
|
||||
"error_callback" => 'callback'
|
||||
));
|
||||
|
||||
$this->assertEquals($consumer->getHost(), "localhost");
|
||||
$this->assertEquals($consumer->getEndpoint(), "/endpoint");
|
||||
$this->assertEquals($consumer->getTimeout(), 2);
|
||||
$this->assertEquals($consumer->getConnectTimeout(), 1);
|
||||
$this->assertEquals($consumer->getProtocol(), "https");
|
||||
$this->assertEquals($consumer->getNumThreads(), 5);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class ErrorHandler {
|
||||
public $last_code = -1;
|
||||
public $last_msg = "";
|
||||
|
||||
public function handle_error($code, $msg) {
|
||||
$this->last_code = $code;
|
||||
$this->last_msg = $msg;
|
||||
}
|
||||
}
|
||||
|
||||
class CurlConsumer extends ConsumerStrategies_CurlConsumer {
|
||||
|
||||
public $forkedCalls = 0;
|
||||
public $blockingCalls = 0;
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getEndpoint()
|
||||
{
|
||||
return $this->_endpoint;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool|null
|
||||
*/
|
||||
public function getFork()
|
||||
{
|
||||
return $this->_fork;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getHost()
|
||||
{
|
||||
return $this->_host;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getProtocol()
|
||||
{
|
||||
return $this->_protocol;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getTimeout()
|
||||
{
|
||||
return $this->_timeout;
|
||||
}
|
||||
|
||||
protected function _execute($url, $data)
|
||||
{
|
||||
$this->blockingCalls++;
|
||||
return parent::_execute($url, $data);
|
||||
}
|
||||
|
||||
protected function _execute_forked($url, $data)
|
||||
{
|
||||
$this->forkedCalls++;
|
||||
return parent::_execute_forked($url, $data);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
class ConsumerStrategies_FileConsumerTest extends PHPUnit_Framework_TestCase {
|
||||
|
||||
/**
|
||||
* @var ConsumerStrategies_FileConsumer
|
||||
*/
|
||||
protected $_instance = null;
|
||||
protected $_file = null;
|
||||
protected function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->_file = dirname(__FILE__)."/output-".time().".txt";
|
||||
$this->_instance = new ConsumerStrategies_FileConsumer(array("file" => $this->_file));
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
$this->_instance = null;
|
||||
@unlink($this->_file);
|
||||
}
|
||||
|
||||
public function testPersist() {
|
||||
$this->_instance->persist(array("msg"));
|
||||
$contents = file_get_contents($this->_file);
|
||||
$this->assertEquals('["msg"]'."\n", $contents);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
class ConsumerStrategies_SocketConsumerTest extends PHPUnit_Framework_TestCase {
|
||||
|
||||
/**
|
||||
* @var ConsumerStrategies_SocketConsumer
|
||||
*/
|
||||
protected $_instance = null;
|
||||
protected $_file = null;
|
||||
protected function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->_instance = new ConsumerStrategies_SocketConsumer(array(
|
||||
"host" => "localhost",
|
||||
"endpoint" => "/endpoint",
|
||||
"timeout" => 2,
|
||||
"use_ssl" => false
|
||||
));
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
$this->_instance = null;
|
||||
}
|
||||
|
||||
public function testPersist() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
29
wp-content/plugins/wp-smushit/vendor/mixpanel/mixpanel-php/test/MixpanelTest.php
vendored
Normal file
29
wp-content/plugins/wp-smushit/vendor/mixpanel/mixpanel-php/test/MixpanelTest.php
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
class MixpanelTest extends PHPUnit_Framework_TestCase {
|
||||
|
||||
/**
|
||||
* @var Mixpanel
|
||||
*/
|
||||
protected $_instance = null;
|
||||
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
$this->_instance = Mixpanel::getInstance("token");
|
||||
}
|
||||
|
||||
protected function tearDown() {
|
||||
parent::tearDown();
|
||||
$this->_instance->reset();
|
||||
$this->_instance = null;
|
||||
}
|
||||
|
||||
public function testGetInstance() {
|
||||
$instance = Mixpanel::getInstance("token");
|
||||
$this->assertInstanceOf("Mixpanel", $instance);
|
||||
$this->assertEquals($this->_instance, $instance);
|
||||
$this->assertInstanceOf("Producers_MixpanelPeople", $this->_instance->people);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,149 @@
|
||||
<?php
|
||||
|
||||
class MixpanelEventsProducerTest extends PHPUnit_Framework_TestCase {
|
||||
|
||||
/**
|
||||
* @var Producers_MixpanelEvents
|
||||
*/
|
||||
protected $_instance = null;
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->_instance = new Producers_MixpanelEvents("token");
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
$this->_instance->reset();
|
||||
$this->_instance = null;
|
||||
}
|
||||
|
||||
|
||||
public function testTrack() {
|
||||
$this->_instance->track("test_event", array("number" => 1));
|
||||
$queue = $this->_instance->getQueue();
|
||||
$this->assertEquals(1, count($queue));
|
||||
$this->assertEquals("test_event", $queue[0]['event']);
|
||||
$this->assertEquals(1, $queue[0]['properties']['number']);
|
||||
}
|
||||
|
||||
public function testRegister() {
|
||||
$this->_instance->register("super_property", "super_value");
|
||||
$this->assertEquals("super_value", $this->_instance->getProperty("super_property"));
|
||||
}
|
||||
|
||||
|
||||
public function testRegisterAll() {
|
||||
$this->_instance->registerAll(array("prop1" => "val1", "prop2" => "val2"));
|
||||
$this->assertEquals("val1", $this->_instance->getProperty("prop1"));
|
||||
$this->assertEquals("val2", $this->_instance->getProperty("prop2"));
|
||||
}
|
||||
|
||||
public function testRegisterOnce() {
|
||||
$this->_instance->registerOnce("prop3", "val3");
|
||||
$this->_instance->registerOnce("prop3", "val4");
|
||||
$this->assertEquals("val3", $this->_instance->getProperty("prop3"));
|
||||
}
|
||||
|
||||
public function testRegisterAllOnce() {
|
||||
$this->_instance->registerAllOnce(array("prop5" => "val5", "prop6" => "val6"));
|
||||
$this->_instance->registerAllOnce(array("prop5" => "val6", "prop6" => "val7"));
|
||||
$this->assertEquals("val5", $this->_instance->getProperty("prop5"));
|
||||
$this->assertEquals("val6", $this->_instance->getProperty("prop6"));
|
||||
}
|
||||
|
||||
public function unregister() {
|
||||
$this->_instance->register("prop7", "val7");
|
||||
$this->_instance->register("prop8", "val8");
|
||||
$this->assertEquals("val7", $this->_instance->getProperty("prop7"));
|
||||
$this->assertEquals("val8", $this->_instance->getProperty("prop8"));
|
||||
$this->_instance->unregister("prop7");
|
||||
$this->assertEquals(null, $this->_instance->getProperty("prop7"));
|
||||
$this->assertEquals("val8", $this->_instance->getProperty("prop8"));
|
||||
}
|
||||
|
||||
public function unregisterAll() {
|
||||
$this->_instance->registerAll(array("prop9" => "val9", "prop10" => "val10"));
|
||||
$this->assertEquals("val9", $this->_instance->getProperty("prop9"));
|
||||
$this->assertEquals("val10", $this->_instance->getProperty("prop10"));
|
||||
$this->assertEquals("val11", $this->_instance->getProperty("prop11"));
|
||||
$this->_instance->unregisterAll(array("prop9", "prop10"));
|
||||
$this->assertEquals(null, $this->_instance->getProperty("prop9"));
|
||||
$this->assertEquals(null, $this->_instance->getProperty("prop10"));
|
||||
$this->assertEquals("val11", $this->_instance->getProperty("prop11"));
|
||||
}
|
||||
|
||||
public function testCreateAlias() {
|
||||
$distinct_id = 1;
|
||||
$alias = 2;
|
||||
$msg = $this->_instance->createAlias($distinct_id, $alias);
|
||||
$this->assertEquals('$create_alias', $msg['event']);
|
||||
$this->assertEquals($distinct_id, $msg['properties']['distinct_id']);
|
||||
$this->assertEquals($alias, $msg['properties']['alias']);
|
||||
}
|
||||
|
||||
public function testCreateAliasRespectsConsumerSetting() {
|
||||
$tmp_file = __DIR__ . '/test.tmp';
|
||||
$this->assertFileNotExists($tmp_file);
|
||||
|
||||
$options = array('consumer' => 'file', 'file' => $tmp_file);
|
||||
$instance = new Producers_MixpanelEvents('token', $options);
|
||||
|
||||
try {
|
||||
$instance->createAlias(1, 2);
|
||||
$this->assertStringEqualsFile($tmp_file, '[{"event":"$create_alias","properties":{"distinct_id":1,"alias":2,"token":"token"}}]' . PHP_EOL);
|
||||
} catch (Exception $e) {
|
||||
unlink($tmp_file);
|
||||
throw $e;
|
||||
}
|
||||
|
||||
unlink($tmp_file);
|
||||
}
|
||||
|
||||
public function testIdentifyInvalidAnonId() {
|
||||
$user_id = 1;
|
||||
$anon_id = 111;
|
||||
|
||||
$this->_instance->identify($user_id, $anon_id);
|
||||
$queue = $this->_instance->getQueue();
|
||||
|
||||
$this->assertEquals(0, count($queue));
|
||||
}
|
||||
|
||||
public function testIdentifyValidAnonId() {
|
||||
$user_id = 1;
|
||||
$anon_id = '2c93fdf3-4fbf-4fec-baaf-136ce87c13cc';
|
||||
|
||||
$test = $this->_instance->identify($user_id, $anon_id);
|
||||
$queue = $this->_instance->getQueue();
|
||||
|
||||
$this->assertEquals(1, count($queue));
|
||||
$this->assertEquals('$identify', $queue[0]['event']);
|
||||
$this->assertEquals($user_id, $queue[0]['properties']['$identified_id']);
|
||||
$this->assertEquals($anon_id, $queue[0]['properties']['$anon_id']);
|
||||
}
|
||||
|
||||
public function testIdentifyValidAnonIdLong() {
|
||||
$user_id = 1;
|
||||
$anon_id = '13bbf7943e584-0885c2531-5c793977-3e8000-13bbf7943e64cf';
|
||||
|
||||
$test = $this->_instance->identify($user_id, $anon_id);
|
||||
$queue = $this->_instance->getQueue();
|
||||
|
||||
$this->assertEquals(1, count($queue));
|
||||
$this->assertEquals('$identify', $queue[0]['event']);
|
||||
$this->assertEquals($user_id, $queue[0]['properties']['$identified_id']);
|
||||
$this->assertEquals($anon_id, $queue[0]['properties']['$anon_id']);
|
||||
}
|
||||
|
||||
public function testIdentifyNoAnonId() {
|
||||
$user_id = 1;
|
||||
|
||||
$test = $this->_instance->identify($user_id);
|
||||
$queue = $this->_instance->getQueue();
|
||||
|
||||
$this->assertEquals(0, count($queue));
|
||||
}
|
||||
}
|
@ -0,0 +1,117 @@
|
||||
<?php
|
||||
|
||||
class MixpanelGroupsProducerTest extends PHPUnit_Framework_TestCase {
|
||||
|
||||
/**
|
||||
* @var Producers_MixpanelGroups
|
||||
*/
|
||||
protected $_instance = null;
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->_instance = new Producers_MixpanelGroups("token");
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
$this->_instance->reset();
|
||||
$this->_instance = null;
|
||||
}
|
||||
|
||||
public function testSet() {
|
||||
$this->_instance->set("company","Mixpanel", array("industry" => "tech"));
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals("company", $msg['$group_key']);
|
||||
$this->assertEquals("Mixpanel", $msg['$group_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertArrayNotHasKey('$ignore_time', $msg);
|
||||
$this->assertArrayHasKey('$set', $msg);
|
||||
$this->assertArrayHasKey("industry", $msg['$set']);
|
||||
$this->assertEquals("tech", $msg['$set']['industry']);
|
||||
}
|
||||
|
||||
public function testSetIgnoreTime() {
|
||||
$this->_instance->set("company","Mixpanel", array("industry" => "Tech"), true);
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals("company", $msg['$group_key']);
|
||||
$this->assertEquals("Mixpanel", $msg['$group_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertEquals(true, $msg['$ignore_time']);
|
||||
$this->assertArrayHasKey('$set', $msg);
|
||||
$this->assertArrayHasKey("industry", $msg['$set']);
|
||||
$this->assertEquals("Tech", $msg['$set']['industry']);
|
||||
}
|
||||
|
||||
|
||||
public function testSetOnce() {
|
||||
$this->_instance->setOnce("company","Mixpanel", array("industry" => "Tech"), true);
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals("company", $msg['$group_key']);
|
||||
$this->assertEquals("Mixpanel", $msg['$group_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertArrayHasKey('$set_once', $msg);
|
||||
$this->assertArrayHasKey("industry", $msg['$set_once']);
|
||||
$this->assertEquals("Tech", $msg['$set_once']['industry']);
|
||||
}
|
||||
|
||||
public function testUnionSingle() {
|
||||
$this->_instance->union("company","Mixpanel", "actions", "Logged In");
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals("company", $msg['$group_key']);
|
||||
$this->assertEquals("Mixpanel", $msg['$group_id']);
|
||||
$this->assertArrayHasKey('$union', $msg);
|
||||
$this->assertArrayHasKey("actions", $msg['$union']);
|
||||
$this->assertEquals("Logged In", $msg['$union']['actions']);
|
||||
}
|
||||
|
||||
public function testUnionMultiple() {
|
||||
$this->_instance->union("company","Mixpanel", "actions", array("Logged In", "Logged Out"));
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals("company", $msg['$group_key']);
|
||||
$this->assertEquals("Mixpanel", $msg['$group_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertArrayHasKey('$union', $msg);
|
||||
$this->assertArrayHasKey("actions", $msg['$union']);
|
||||
$this->assertEquals(array("Logged In", "Logged Out"), $msg['$union']['actions']);
|
||||
}
|
||||
|
||||
|
||||
public function testRemove() {
|
||||
$this->_instance->remove("company","Mixpanel", array("industry" => "tech"));
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals("company", $msg['$group_key']);
|
||||
$this->assertEquals("Mixpanel", $msg['$group_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertArrayNotHasKey('$ignore_time', $msg);
|
||||
$this->assertArrayHasKey('$unset', $msg);
|
||||
$this->assertArrayHasKey("industry", $msg['$unset']);
|
||||
$this->assertEquals("tech", $msg['$unset']['industry']);
|
||||
}
|
||||
|
||||
|
||||
public function testDeleteGroup() {
|
||||
$this->_instance->deleteGroup("company","Mixpanel");
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals("company", $msg['$group_key']);
|
||||
$this->assertEquals("Mixpanel", $msg['$group_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertArrayHasKey('$delete', $msg);
|
||||
$this->assertEquals("", $msg['$delete']);
|
||||
}
|
||||
}
|
@ -0,0 +1,162 @@
|
||||
<?php
|
||||
|
||||
class MixpanelPeopleProducerTest extends PHPUnit_Framework_TestCase {
|
||||
|
||||
/**
|
||||
* @var Producers_MixpanelPeople
|
||||
*/
|
||||
protected $_instance = null;
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->_instance = new Producers_MixpanelPeople("token");
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
$this->_instance->reset();
|
||||
$this->_instance = null;
|
||||
}
|
||||
|
||||
public function testSet() {
|
||||
$this->_instance->set(12345, array("name" => "John"), "192.168.0.1");
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals(12345, $msg['$distinct_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertEquals("192.168.0.1", $msg['$ip']);
|
||||
$this->assertArrayNotHasKey('$ignore_time', $msg);
|
||||
$this->assertArrayNotHasKey('$ignore_alias', $msg);
|
||||
$this->assertArrayHasKey('$set', $msg);
|
||||
$this->assertArrayHasKey("name", $msg['$set']);
|
||||
$this->assertEquals("John", $msg['$set']['name']);
|
||||
}
|
||||
|
||||
public function testSetIgnoreTime() {
|
||||
$this->_instance->set(12345, array("name" => "John"), "192.168.0.1", true);
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals(12345, $msg['$distinct_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertEquals("192.168.0.1", $msg['$ip']);
|
||||
$this->assertEquals(true, $msg['$ignore_time']);
|
||||
$this->assertArrayHasKey('$set', $msg);
|
||||
$this->assertArrayHasKey("name", $msg['$set']);
|
||||
$this->assertEquals("John", $msg['$set']['name']);
|
||||
}
|
||||
|
||||
public function testSetIgnoreAlias() {
|
||||
$this->_instance->set(12345, array("name" => "John"), "192.168.0.1", false, true);
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals(12345, $msg['$distinct_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertEquals("192.168.0.1", $msg['$ip']);
|
||||
$this->assertArrayNotHasKey('$ignore_time', $msg);
|
||||
$this->assertEquals(true, $msg['$ignore_alias']);
|
||||
$this->assertArrayHasKey('$set', $msg);
|
||||
$this->assertArrayHasKey("name", $msg['$set']);
|
||||
$this->assertEquals("John", $msg['$set']['name']);
|
||||
}
|
||||
|
||||
|
||||
public function testSetOnce() {
|
||||
$this->_instance->setOnce(12345, array("name" => "John"), "192.168.0.1");
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals(12345, $msg['$distinct_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertEquals("192.168.0.1", $msg['$ip']);
|
||||
$this->assertArrayHasKey('$set_once', $msg);
|
||||
$this->assertArrayHasKey("name", $msg['$set_once']);
|
||||
$this->assertEquals("John", $msg['$set_once']['name']);
|
||||
}
|
||||
|
||||
public function testIncrement() {
|
||||
$this->_instance->increment(12345, "logins", 1, "192.168.0.1");
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals(12345, $msg['$distinct_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertEquals("192.168.0.1", $msg['$ip']);
|
||||
$this->assertArrayHasKey('$add', $msg);
|
||||
$this->assertArrayHasKey("logins", $msg['$add']);
|
||||
$this->assertEquals(1, $msg['$add']['logins']);
|
||||
}
|
||||
|
||||
public function testAppendSingle() {
|
||||
$this->_instance->append(12345, "actions", "Logged In", "192.168.0.1");
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals(12345, $msg['$distinct_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertEquals("192.168.0.1", $msg['$ip']);
|
||||
$this->assertArrayHasKey('$append', $msg);
|
||||
$this->assertArrayHasKey("actions", $msg['$append']);
|
||||
$this->assertEquals("Logged In", $msg['$append']['actions']);
|
||||
}
|
||||
|
||||
public function testAppendMultiple() {
|
||||
$this->_instance->append(12345, "actions", array("Logged In", "Logged Out"), "192.168.0.1");
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals(12345, $msg['$distinct_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertEquals("192.168.0.1", $msg['$ip']);
|
||||
$this->assertArrayHasKey('$union', $msg);
|
||||
$this->assertArrayHasKey("actions", $msg['$union']);
|
||||
$this->assertEquals(array("Logged In", "Logged Out"), $msg['$union']['actions']);
|
||||
}
|
||||
|
||||
public function testTrackCharge() {
|
||||
date_default_timezone_set("America/Los_Angeles");
|
||||
$time = time();
|
||||
$this->_instance->trackCharge(12345, "20.00", $time, "192.168.0.1");
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals(12345, $msg['$distinct_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertEquals("192.168.0.1", $msg['$ip']);
|
||||
$this->assertArrayHasKey('$append', $msg);
|
||||
$this->assertArrayHasKey('$transactions', $msg['$append']);
|
||||
$this->assertArrayHasKey('$amount', $msg['$append']['$transactions']);
|
||||
$this->assertArrayHasKey('$time', $msg['$append']['$transactions']);
|
||||
$this->assertEquals("20.00", $msg['$append']['$transactions']['$amount']);
|
||||
$this->assertEquals(date("c", $time), $msg['$append']['$transactions']['$time']);
|
||||
}
|
||||
|
||||
public function testClearCharges() {
|
||||
$this->_instance->clearCharges(12345,"192.168.0.1");
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals(12345, $msg['$distinct_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertEquals("192.168.0.1", $msg['$ip']);
|
||||
$this->assertArrayHasKey('$set', $msg);
|
||||
$this->assertArrayHasKey('$transactions', $msg['$set']);
|
||||
$this->assertSameSize(array(), $msg['$set']['$transactions']);
|
||||
}
|
||||
|
||||
public function testDeleteUser() {
|
||||
$this->_instance->deleteUser(12345,"192.168.0.1");
|
||||
$queue = $this->_instance->getQueue();
|
||||
$msg = $queue[count($queue)-1];
|
||||
|
||||
$this->assertEquals(12345, $msg['$distinct_id']);
|
||||
$this->assertEquals("token", $msg['$token']);
|
||||
$this->assertEquals("192.168.0.1", $msg['$ip']);
|
||||
$this->assertArrayHasKey('$delete', $msg);
|
||||
$this->assertEquals("", $msg['$delete']);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user