Skip to content

Commit

Permalink
Merge pull request #1 from comocode/travis
Browse files Browse the repository at this point in the history
adding travis file and starting to build test
  • Loading branch information
82rules committed Sep 14, 2015
2 parents dd6037d + 4e0638e commit 04aa0f6
Show file tree
Hide file tree
Showing 10 changed files with 474 additions and 3 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.idea/
22 changes: 22 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
language: php

php:
- 5.6
- 5.5
- hhvm

before_install:
- composer self-update
- composer create-project laravel/laravel
- cd ./laravel
- composer require comocode/laravel-ab dev-travis
- composer update
- touch storage/database.sqlite
- cp ./vendor/comocode/laravel-ab/tests/source/laravel/app.php ./config/app.php
- cp ./vendor/comocode/laravel-ab/tests/source/laravel/database.php ./config/database.php
- cp ./vendor/comocode/laravel-ab/tests/source/laravel/routes.php ./app/Http/routes.php
- php artisan ab:migrate
- nohup php artistan serve &

script: "phpunit ./vendor/comocode/laravel-ab/tests/AbTests.php"

2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
[![Build Status](https://travis-ci.org/comocode/laravel-ab.png)](https://travis-ci.org/comocode/laravel-ab)

laravel-ab
==========

Expand Down
6 changes: 3 additions & 3 deletions migrations/2015_08_15_000001_create_ab_tables.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ public function up()
Schema::create('ab_events', function(Blueprint $table)
{
$table->increments('id');
$table->string('instance_id');
$table->string('experiments_id');
$table->string('instance_id')->nullable();
$table->string('experiments_id')->nullable();
$table->string('name');
$table->string('value');
$table->timestamps();
Expand All @@ -42,7 +42,7 @@ public function up()
Schema::create('ab_goal', function(Blueprint $table)
{
$table->increments('id');
$table->string('instance_id');
$table->string('instance_id')->nullable();
$table->string('goal');
$table->string('value')->nullable();
$table->timestamps();
Expand Down
81 changes: 81 additions & 0 deletions tests/AbTests.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<?php

use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\View\Compilers\BladeCompiler;

use ComoCode\LaravelAb\App\Experiments;
use ComoCode\LaravelAb\App\Instance;
use ComoCode\LaravelAb\App\Events;
use ComoCode\LaravelAb\App\Goal;
use ComoCode\LaravelAb\App\Ab;

class ExampleTest extends TestCase
{
/**
* A basic functional test example.
*
* @return void
*/

public function testDefaultCreation(){

$ab = app()->make('Ab');
$instance = $ab->experiment('Test');
$instance->condition('one');
echo "condition 1";
$instance->condition('two');
echo "condition 2";
$instance->track('goal');
$ab->goal('goal');

Ab::saveSession();


$experiments = Experiments::where(['experiment'=>'Test'])->get();

$goals = Goal::where(['goal'=>'goal'])->get();

$experiment = $experiments->first();

$this->assertEquals($experiments->count(),1);
$this->assertEquals($experiment->events()->count(), 1);

$this->assertEquals($goals->count(),1);

}

public function testNestedView()
{
$this->visit('/')
->see('Test-')
->dontSee('@ab');

Ab::saveSession();

$test1_experiments = Experiments::where(['experiment'=>'test1'])->get();
$test2_experiments = Experiments::where(['experiment'=>'test2'])->get();

$test1 = $test1_experiments->first();
$test2 = $test2_experiments->first();

$this->assertEquals($test1_experiments->count(), 1);
$this->assertEquals($test1->events()->count(), 1);

$this->assertEquals($test2_experiments->count(), 1);
$this->assertEquals($test2->events()->count(), 1);



}


public function testWeighted()
{
$this->visit('/weight')
->see('YES-SEE-THIS')
->dontSee('DONT-SEE-THIS');
}

}
200 changes: 200 additions & 0 deletions tests/source/laravel/app.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
<?php

return [

/*
|--------------------------------------------------------------------------
| Application Debug Mode
|--------------------------------------------------------------------------
|
| When your application is in debug mode, detailed error messages with
| stack traces will be shown on every error that occurs within your
| application. If disabled, a simple generic error page is shown.
|
*/

'debug' => true,

/*
|--------------------------------------------------------------------------
| Application URL
|--------------------------------------------------------------------------
|
| This URL is used by the console to properly generate URLs when using
| the Artisan command line tool. You should set this to the root of
| your application so that it is used when running Artisan tasks.
|
*/

'url' => 'http://localhost:8000',

/*
|--------------------------------------------------------------------------
| Application Timezone
|--------------------------------------------------------------------------
|
| Here you may specify the default timezone for your application, which
| will be used by the PHP date and date-time functions. We have gone
| ahead and set this to a sensible default for you out of the box.
|
*/

'timezone' => 'UTC',

/*
|--------------------------------------------------------------------------
| Application Locale Configuration
|--------------------------------------------------------------------------
|
| The application locale determines the default locale that will be used
| by the translation service provider. You are free to set this value
| to any of the locales which will be supported by the application.
|
*/

'locale' => 'en',

/*
|--------------------------------------------------------------------------
| Application Fallback Locale
|--------------------------------------------------------------------------
|
| The fallback locale determines the locale to use when the current one
| is not available. You may change the value to correspond to any of
| the language folders that are provided through your application.
|
*/

'fallback_locale' => 'en',

/*
|--------------------------------------------------------------------------
| Encryption Key
|--------------------------------------------------------------------------
|
| This key is used by the Illuminate encrypter service and should be set
| to a random, 32 character string, otherwise these encrypted strings
| will not be safe. Please do this before deploying an application!
|
*/

'key' => env('APP_KEY', 'SomeRandomString'),

'cipher' => 'AES-256-CBC',

/*
|--------------------------------------------------------------------------
| Logging Configuration
|--------------------------------------------------------------------------
|
| Here you may configure the log settings for your application. Out of
| the box, Laravel uses the Monolog PHP logging library. This gives
| you a variety of powerful log handlers / formatters to utilize.
|
| Available Settings: "single", "daily", "syslog", "errorlog"
|
*/

'log' => 'single',

/*
|--------------------------------------------------------------------------
| Autoloaded Service Providers
|--------------------------------------------------------------------------
|
| The service providers listed here will be automatically loaded on the
| request to your application. Feel free to add your own services to
| this array to grant expanded functionality to your applications.
|
*/

'providers' => [

/*
* Laravel Framework Service Providers...
*/
Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
Illuminate\Auth\AuthServiceProvider::class,
Illuminate\Broadcasting\BroadcastServiceProvider::class,
Illuminate\Bus\BusServiceProvider::class,
Illuminate\Cache\CacheServiceProvider::class,
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
Illuminate\Routing\ControllerServiceProvider::class,
Illuminate\Cookie\CookieServiceProvider::class,
Illuminate\Database\DatabaseServiceProvider::class,
Illuminate\Encryption\EncryptionServiceProvider::class,
Illuminate\Filesystem\FilesystemServiceProvider::class,
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
Illuminate\Hashing\HashServiceProvider::class,
Illuminate\Mail\MailServiceProvider::class,
Illuminate\Pagination\PaginationServiceProvider::class,
Illuminate\Pipeline\PipelineServiceProvider::class,
Illuminate\Queue\QueueServiceProvider::class,
Illuminate\Redis\RedisServiceProvider::class,
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
Illuminate\Session\SessionServiceProvider::class,
Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,

/*
* Application Service Providers...
*/
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
ComoCode\LaravelAb\LaravelAbServiceProvider::class

],

/*
|--------------------------------------------------------------------------
| Class Aliases
|--------------------------------------------------------------------------
|
| This array of class aliases will be registered when this application
| is started. However, feel free to register as many as you wish as
| the aliases are "lazy" loaded so they don't hinder performance.
|
*/

'aliases' => [

'App' => Illuminate\Support\Facades\App::class,
'Artisan' => Illuminate\Support\Facades\Artisan::class,
'Auth' => Illuminate\Support\Facades\Auth::class,
'Blade' => Illuminate\Support\Facades\Blade::class,
'Bus' => Illuminate\Support\Facades\Bus::class,
'Cache' => Illuminate\Support\Facades\Cache::class,
'Config' => Illuminate\Support\Facades\Config::class,
'Cookie' => Illuminate\Support\Facades\Cookie::class,
'Crypt' => Illuminate\Support\Facades\Crypt::class,
'DB' => Illuminate\Support\Facades\DB::class,
'Eloquent' => Illuminate\Database\Eloquent\Model::class,
'Event' => Illuminate\Support\Facades\Event::class,
'File' => Illuminate\Support\Facades\File::class,
'Gate' => Illuminate\Support\Facades\Gate::class,
'Hash' => Illuminate\Support\Facades\Hash::class,
'Input' => Illuminate\Support\Facades\Input::class,
'Inspiring' => Illuminate\Foundation\Inspiring::class,
'Lang' => Illuminate\Support\Facades\Lang::class,
'Log' => Illuminate\Support\Facades\Log::class,
'Mail' => Illuminate\Support\Facades\Mail::class,
'Password' => Illuminate\Support\Facades\Password::class,
'Queue' => Illuminate\Support\Facades\Queue::class,
'Redirect' => Illuminate\Support\Facades\Redirect::class,
'Redis' => Illuminate\Support\Facades\Redis::class,
'Request' => Illuminate\Support\Facades\Request::class,
'Response' => Illuminate\Support\Facades\Response::class,
'Route' => Illuminate\Support\Facades\Route::class,
'Schema' => Illuminate\Support\Facades\Schema::class,
'Session' => Illuminate\Support\Facades\Session::class,
'Storage' => Illuminate\Support\Facades\Storage::class,
'URL' => Illuminate\Support\Facades\URL::class,
'Validator' => Illuminate\Support\Facades\Validator::class,
'View' => Illuminate\Support\Facades\View::class,

],

];
Loading

0 comments on commit 04aa0f6

Please sign in to comment.