[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [websites/sso-kde-org] app: Fix seeder issue, add unit test for fields
From: Sayak Banerjee <sayakb () kde ! org>
Date: 2014-10-26 8:39:14
Message-ID: E1XiJM2-0000W2-Hu () scm ! kde ! org
[Download RAW message or body]
Git commit 09b270c19ce60af6ff1f7d46bad01ce62984bc08 by Sayak Banerjee.
Committed on 26/10/2014 at 08:39.
Pushed by sayakb into branch 'master'.
Fix seeder issue, add unit test for fields
M +2 -2 app/controllers/FieldController.php
M +32 -50 app/database/seeds/V100Seeder.php
M +23 -0 app/tests/helpers/TestHelper.php
A +215 -0 app/tests/steps/FieldTest.php
M +3 -3 app/views/field/manage.blade.php
http://commits.kde.org/websites/sso-kde-org/09b270c19ce60af6ff1f7d46bad01ce62984bc08
diff --git a/app/controllers/FieldController.php b/app/controllers/FieldController.php
index 6c95a99..54fcfdd 100755
--- a/app/controllers/FieldController.php
+++ b/app/controllers/FieldController.php
@@ -126,7 +126,7 @@ class FieldController extends BaseController {
Cache::tags('field')->flush();
// Build the 'field created' message
- $link = link_to("field/permission/{$field->id}", Lang::get('field.manage_permissions'));
+ $link = link_to("field/permissions/{$field->id}", Lang::get('field.manage_permissions'));
Session::flash('messages.success', Lang::get('field.field_created', array('link' => $link)));
@@ -294,7 +294,7 @@ class FieldController extends BaseController {
* @param int $id
* @return View
*/
- public function getPermission($id)
+ public function getPermissions($id)
{
$field = Field::findOrFail($id);
diff --git a/app/database/seeds/V100Seeder.php b/app/database/seeds/V100Seeder.php
index 80f1b30..2886859 100755
--- a/app/database/seeds/V100Seeder.php
+++ b/app/database/seeds/V100Seeder.php
@@ -32,84 +32,66 @@ class V100Seeder extends Seeder {
{
// Insert ACL types
DB::table('acl_types')->insert(array(
- array('name' => 'Self'),
- array('name' => 'All'),
- array('name' => 'User'),
- array('name' => 'Group'),
+ array('id' => 1, 'name' => 'Self'),
+ array('id' => 2, 'name' => 'All'),
+ array('id' => 3, 'name' => 'User'),
+ array('id' => 4, 'name' => 'Group'),
));
// Insert ACL flags
DB::table('acl_flags')->insert(array(
- array('name' => 'acl_manage'),
- array('name' => 'field_edit'),
- array('name' => 'field_manage'),
- array('name' => 'field_view'),
- array('name' => 'group_edit'),
- array('name' => 'group_manage'),
- array('name' => 'user_edit'),
- array('name' => 'user_manage'),
+ array('id' => 1, 'name' => 'acl_manage'),
+ array('id' => 2, 'name' => 'field_edit'),
+ array('id' => 3, 'name' => 'field_manage'),
+ array('id' => 4, 'name' => 'field_view'),
+ array('id' => 5, 'name' => 'group_edit'),
+ array('id' => 6, 'name' => 'group_manage'),
+ array('id' => 7, 'name' => 'user_edit'),
+ array('id' => 8, 'name' => 'user_manage'),
));
// Insert the user status values
DB::table('user_status')->insert(array(
- array('name' => 'Inactive'),
- array('name' => 'Active'),
- array('name' => 'Blocked'),
+ array('id' => 1, 'name' => 'Inactive'),
+ array('id' => 2, 'name' => 'Active'),
+ array('id' => 3, 'name' => 'Blocked'),
));
// Insert token types
DB::table('token_types')->insert(array(
- array('name' => 'Email'),
- array('name' => 'Password'),
+ array('id' => 1, 'name' => 'Email'),
+ array('id' => 2, 'name' => 'Password'),
));
// Insert device types
DB::table('device_types')->insert(array(
- array('name' => 'Computer'),
- array('name' => 'Mobile'),
- array('name' => 'Tablet'),
+ array('id' => 1, 'name' => 'Computer'),
+ array('id' => 2, 'name' => 'Mobile'),
+ array('id' => 3, 'name' => 'Tablet'),
));
// Insert group types
DB::table('group_types')->insert(array(
- array('name' => 'Open'),
- array('name' => 'Request'),
- array('name' => 'Closed'),
+ array('id' => 1, 'name' => 'Open'),
+ array('id' => 2, 'name' => 'Request'),
+ array('id' => 3, 'name' => 'Closed'),
));
// Insert field categories
DB::table('field_categories')->insert(array(
- array('name' => 'Basic'),
- array('name' => 'Contact'),
- array('name' => 'Other'),
+ array('id' => 1, 'name' => 'Basic'),
+ array('id' => 2, 'name' => 'Contact'),
+ array('id' => 3, 'name' => 'Other'),
));
// Insert field types
DB::table('field_types')->insert(array(
- array(
- 'name' => 'TextBox',
- 'option' => Flags::NO,
- ),
- array(
- 'name' => 'TextArea',
- 'option' => Flags::NO,
- ),
- array(
- 'name' => 'Radio',
- 'option' => Flags::YES,
- ),
- array(
- 'name' => 'CheckBox',
- 'option' => Flags::YES,
- ),
- array(
- 'name' => 'Dropdown',
- 'option' => Flags::YES,
- ),
- array(
- 'name' => 'DatePicker',
- 'option' => Flags::NO,
- ),
+ array('id' => 1, 'name' => 'TextBox', 'option' => Flags::NO),
+ array('id' => 2, 'name' => 'TextArea', 'option' => Flags::NO),
+ array('id' => 3, 'name' => 'Radio', 'option' => Flags::YES),
+ array('id' => 4, 'name' => 'CheckBox', 'option' => Flags::YES),
+ array('id' => 5, 'name' => 'Dropdown', 'option' => Flags::YES),
+ array('id' => 6, 'name' => 'DatePicker', 'option' => Flags::NO),
));
// Insert admin user account
diff --git a/app/tests/helpers/TestHelper.php b/app/tests/helpers/TestHelper.php
index f9978c4..d5fbdf0 100755
--- a/app/tests/helpers/TestHelper.php
+++ b/app/tests/helpers/TestHelper.php
@@ -154,6 +154,29 @@ class TestHelper {
);
}
+ /**
+ * Creates a field in the test database
+ *
+ * @static
+ * @access public
+ * @return Field
+ */
+ public static function createField()
+ {
+ $order = Field::where('category', FieldCategories::BASIC)->max('order') + 1;
+
+ $field = Field::create(array(
+ 'name' => 'unit test field',
+ 'machine_name' => str_random(10),
+ 'type' => FieldTypes::TEXTBOX,
+ 'category' => FieldCategories::BASIC,
+ 'required' => false,
+ 'order' => $order,
+ ));
+
+ return $field;
+ }
+
}
?>
diff --git a/app/tests/steps/FieldTest.php b/app/tests/steps/FieldTest.php
new file mode 100755
index 0000000..8844f3d
--- /dev/null
+++ b/app/tests/steps/FieldTest.php
@@ -0,0 +1,215 @@
+<?php
+
+/**
+ * Keychain
+ *
+ * SSO login provider for enterprise.
+ *
+ * @package Keychain
+ * @copyright (c) Keychain Developers
+ * @license http://opensource.org/licenses/BSD-3-Clause
+ * @link https://github.com/keychain-sso/keychain
+ * @since Version 1.0
+ * @filesource
+ */
+
+/**
+ * FieldTest class
+ *
+ * Unit test cases for FieldController
+ *
+ * @package Keychain
+ * @subpackage UnitTests
+ */
+class FieldTest extends KeychainTestCase {
+
+ /**
+ * Tests the getIndex method of the controller
+ *
+ * @access public
+ * @return void
+ */
+ public function testGetIndex()
+ {
+ $admin = TestHelper::createUser(UserStatus::ACTIVE, true)->user;
+
+ $this->be($admin);
+ $this->call('GET', 'field');
+
+ $this->assertResponseOk();
+ $this->assertViewHas('fields');
+ }
+
+ /**
+ * Tests the getIndex method of the controller when user does not
+ * have permissions
+ *
+ * @access public
+ * @return void
+ * @expectedException \Symfony\Component\HttpKernel\Exception\HttpException
+ */
+ public function testGetIndexNoPermissions()
+ {
+ $user = TestHelper::createUser(UserStatus::ACTIVE)->user;
+
+ $this->be($user);
+ $this->call('GET', 'field');
+ }
+
+ /**
+ * Tests the getCreate method of the controller
+ *
+ * @access public
+ * @return void
+ */
+ public function testGetCreate()
+ {
+ $admin = TestHelper::createUser(UserStatus::ACTIVE, true)->user;
+
+ $this->be($admin);
+ $this->call('GET', 'field/create');
+
+ $this->assertResponseOk();
+ $this->assertViewHas('modal');
+ }
+
+ /**
+ * Tests the postCreate method of the controller
+ *
+ * @access public
+ * @return void
+ */
+ public function testPostCreate()
+ {
+ $admin = TestHelper::createUser(UserStatus::ACTIVE, true)->user;
+
+ $this->be($admin);
+
+ $this->call('POST', 'field/create', array(
+ 'name' => 'field name',
+ 'type' => FieldTypes::TEXTAREA,
+ 'category' => FieldCategories::BASIC,
+ ));
+
+ $this->assertRedirectedTo('field');
+ $this->assertSessionHas('messages.success');
+ $this->assertEquals(1, Field::where('name', 'field name')->count());
+ }
+
+ /**
+ * Tests the getEdit method of the controller
+ *
+ * @access public
+ * @return void
+ */
+ public function testGetEdit()
+ {
+ $admin = TestHelper::createUser(UserStatus::ACTIVE, true)->user;
+ $field = TestHelper::createField();
+
+ $this->be($admin);
+ $this->call('GET', "field/edit/{$field->id}");
+
+ $this->assertResponseOk();
+ $this->assertViewHas('modal');
+ }
+
+ /**
+ * Tests the postEdit method of the controller
+ *
+ * @access public
+ * @return void
+ */
+ public function testPostEdit()
+ {
+ $admin = TestHelper::createUser(UserStatus::ACTIVE, true)->user;
+ $field = TestHelper::createField();
+
+ $this->be($admin);
+
+ $this->call('POST', 'field/edit', array(
+ 'id' => $field->id,
+ 'name' => 'field name new',
+ 'category' => FieldCategories::BASIC,
+ ));
+
+ $this->assertRedirectedTo('field');
+ $this->assertSessionHas('messages.success');
+ $this->assertEquals(1, Field::where('name', 'field name new')->count());
+ }
+
+ /**
+ * Tests the getDelete method of the controller
+ *
+ * @access public
+ * @return void
+ */
+ public function testGetDelete()
+ {
+ $admin = TestHelper::createUser(UserStatus::ACTIVE, true)->user;
+ $field = TestHelper::createField();
+
+ $this->be($admin);
+ $this->call('GET', "field/delete/{$field->id}");
+
+ $this->assertSessionHas('messages.success');
+ $this->assertEquals(null, Field::find($field->id));
+ }
+
+ /**
+ * Tests the getMove method of the controller with direction as 'up'
+ *
+ * @access public
+ * @return void
+ */
+ public function testGetMoveUp()
+ {
+ $admin = TestHelper::createUser(UserStatus::ACTIVE, true)->user;
+ $fieldTop = TestHelper::createField();
+ $fieldBottom = TestHelper::createField();
+
+ $this->be($admin);
+ $this->call('GET', "field/move/up/{$fieldBottom->id}");
+
+ $this->assertEquals(1, Field::find($fieldBottom->id)->order);
+ $this->assertEquals(2, Field::find($fieldTop->id)->order);
+ }
+
+ /**
+ * Tests the getMove method of the controller with direction as 'down'
+ *
+ * @access public
+ * @return void
+ */
+ public function testGetMoveDown()
+ {
+ $admin = TestHelper::createUser(UserStatus::ACTIVE, true)->user;
+ $fieldTop = TestHelper::createField();
+ $fieldBottom = TestHelper::createField();
+
+ $this->be($admin);
+ $this->call('GET', "field/move/down/{$fieldTop->id}");
+
+ $this->assertEquals(1, Field::find($fieldBottom->id)->order);
+ $this->assertEquals(2, Field::find($fieldTop->id)->order);
+ }
+
+ /**
+ * Tests the getPermissions method of the controller
+ *
+ * @access public
+ * @return void
+ */
+ public function testGetPermissions()
+ {
+ $admin = TestHelper::createUser(UserStatus::ACTIVE, true)->user;
+ $field = TestHelper::createField();
+
+ $this->be($admin);
+ $this->call('GET', "field/permissions/{$field->id}");
+
+ $this->assertResponseOk();
+ $this->assertViewHas('acl');
+ }
+
+}
diff --git a/app/views/field/manage.blade.php b/app/views/field/manage.blade.php
index b088c6a..4ae915e 100755
--- a/app/views/field/manage.blade.php
+++ b/app/views/field/manage.blade.php
@@ -53,7 +53,7 @@
<ul class="dropdown-menu">
<li>
- <a href="{{ url("field/permission/{$fieldBasic->id}") }}">
+ <a href="{{ url("field/permissions/{$fieldBasic->id}") }}">
{{ Lang::get('global.permissions') }}
</a>
</li>
@@ -113,7 +113,7 @@
<ul class="dropdown-menu">
<li>
- <a href="{{ url("field/permission/{$fieldContact->id}") }}">
+ <a href="{{ url("field/permissions/{$fieldContact->id}") }}">
{{ Lang::get('global.permissions') }}
</a>
</li>
@@ -173,7 +173,7 @@
<ul class="dropdown-menu">
<li>
- <a href="{{ url("field/permission/{$fieldOther->id}") }}">
+ <a href="{{ url("field/permissions/{$fieldOther->id}") }}">
{{ Lang::get('global.permissions') }}
</a>
</li>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic