new ui / backend / tests
---
 src/app/controllers/portal_pool_controller.rb      |    5 ++++
 src/app/models/provider.rb                         |    1 -
 src/app/views/portal_pool/accounts.html.erb        |   21 +++++++++++++++++
 .../controllers/portal_pool_controller_spec.rb     |   21 ++++++++++++-----
 src/spec/controllers/provider_controller_spec.rb   |    4 +-
 .../controllers/user_sessions_controller_spec.rb   |    4 +-
 src/spec/factories/base_portal_object.rb           |    3 --
 src/spec/factories/permission.rb                   |   19 ++++++++++-----
 src/spec/factories/privilege.rb                    |   14 -----------
 src/spec/factories/provider.rb                     |    2 +-
 src/spec/factories/role.rb                         |   24 --------------------
 src/spec/factories/user.rb                         |   13 ++++------
 src/spec/fixtures/base_portal_objects.yml          |    2 +
 13 files changed, 66 insertions(+), 67 deletions(-)
 create mode 100644 src/app/views/portal_pool/accounts.html.erb
 delete mode 100644 src/spec/factories/base_portal_object.rb
 delete mode 100644 src/spec/factories/privilege.rb
 delete mode 100644 src/spec/factories/role.rb
 create mode 100644 src/spec/fixtures/base_portal_objects.yml

diff --git a/src/app/controllers/portal_pool_controller.rb 
b/src/app/controllers/portal_pool_controller.rb
index 90df8a5..1cdb96a 100644
--- a/src/app/controllers/portal_pool_controller.rb
+++ b/src/app/controllers/portal_pool_controller.rb
@@ -38,6 +38,11 @@ class PortalPoolController < ApplicationController
     @instances = @pool.instances
   end
 
+  def accounts
+    @pool = PortalPool.find(params[:id])
+    require_privilege(Privilege::INSTANCE_VIEW,@pool)
+  end
+
   def new
     require_privilege(Privilege::POOL_MODIFY)
     @portal_pool = PortalPool.new
diff --git a/src/app/models/provider.rb b/src/app/models/provider.rb
index 1170488..70051e5 100644
--- a/src/app/models/provider.rb
+++ b/src/app/models/provider.rb
@@ -79,7 +79,6 @@ class Provider < ActiveRecord::Base
   def validate
     if !nil_or_empty(url)
       errors.add("url", "must be a valid provider url") unless valid_framework?
-      puts errors.inspect
     end
   end
 
diff --git a/src/app/views/portal_pool/accounts.html.erb 
b/src/app/views/portal_pool/accounts.html.erb
new file mode 100644
index 0000000..b6042d6
--- /dev/null
+++ b/src/app/views/portal_pool/accounts.html.erb
@@ -0,0 +1,21 @@
+<% if @pool.cloud_accounts.size == 0 %>
+<h1>There are no accounts to display</h1>
+<% else %>
+    <table>
+      <thead>
+        <tr>
+        <th scope="col">Provider</th>
+        <th scope="col">Username</th>
+        </tr>
+      </thead>
+      <tbody>
+  <%[email protected]_accounts.each {|account| %>
+        <tr>
+          <td><%= account.provider.name %></td>
+          <td><%= account.username %></td>
+        </tr>
+      <% } %>
+    </tbody>
+  </table>
+<% end %>
+<%= link_to "Add an account", {:controller => "portal_pool", :action => 
"new_account", :pool => @pool.id}, :class => "actionlink" %>
diff --git a/src/spec/controllers/portal_pool_controller_spec.rb 
b/src/spec/controllers/portal_pool_controller_spec.rb
index d409c3a..bd490c5 100644
--- a/src/spec/controllers/portal_pool_controller_spec.rb
+++ b/src/spec/controllers/portal_pool_controller_spec.rb
@@ -1,10 +1,12 @@
 require 'spec_helper'
 
 describe PortalPoolController do
-
+  fixtures :all
+   
   before(:each) do
-    @admin_permission = Factory :admin_permission
-    @admin = @admin_permission.user
+    @permission = Factory.build :admin_permission
+    #permission = Factory.build :pool_creator_permission # FIXME this should 
work but isn't
+    @admin = @permission.user
     activate_authlogic
   end
 
@@ -21,14 +23,21 @@ describe PortalPoolController do
   end
 
   it "should provider means to create new pool" do
-     @instance_creator = Factory :instance_creator
-
      UserSession.create(@admin)
      lambda do
        post :create, :portal_pool => { :name => 'foopool' }
      end.should change(PortalPool, :count).by(1)
-     response.should redirect_to('http://test.host/portal_pool/show/1')
+     id = PortalPool.find(:first, :conditions => ['name = ?', 'foopool']).id
+     response.should redirect_to("http://test.host/portal_pool/show/#{id}";)
   end
 
+  it "should get cloud accounts" do
+     @pool  = Factory :tpool
+     UserSession.create(@admin)
+     get :accounts, :id => @pool.id
+     response.should be_success
+     response.should render_template("accounts")
+     @pool.should_not == nil
+  end
 
 end
diff --git a/src/spec/controllers/provider_controller_spec.rb 
b/src/spec/controllers/provider_controller_spec.rb
index ea67580..2893151 100644
--- a/src/spec/controllers/provider_controller_spec.rb
+++ b/src/spec/controllers/provider_controller_spec.rb
@@ -1,10 +1,10 @@
 require 'spec_helper'
 
 describe ProviderController do
+  fixtures :all
 
   before(:each) do
-    Factory :base_portal_object
-    @admin_permission = Factory :provider_admin_permission
+    @admin_permission = Factory.build :provider_admin_permission
     @provider = @admin_permission.permission_object
     @admin = @admin_permission.user
     activate_authlogic
diff --git a/src/spec/controllers/user_sessions_controller_spec.rb 
b/src/spec/controllers/user_sessions_controller_spec.rb
index f2b80d5..1c0cfcc 100644
--- a/src/spec/controllers/user_sessions_controller_spec.rb
+++ b/src/spec/controllers/user_sessions_controller_spec.rb
@@ -16,14 +16,14 @@ describe UserSessionsController do
   end
 
   it "should create user session" do
-    post :create, :user_session => { :login => "tuser", :password => "secret" }
+    post :create, :user_session => { :login => @tuser.login, :password => 
"secret" }
     UserSession.find.should_not == nil
     @tuser.should == UserSession.find.user
     response.should redirect_to(account_path)
   end
 
   it "should destroy user session" do
-    post :create, :user_session => { :login => "tuser", :password => "secret" }
+    post :create, :user_session => { :login => @tuser.login, :password => 
"secret" }
     delete :destroy
     UserSession.find.should == nil
     response.should redirect_to(login_path)
diff --git a/src/spec/factories/base_portal_object.rb 
b/src/spec/factories/base_portal_object.rb
deleted file mode 100644
index af4c8bd..0000000
--- a/src/spec/factories/base_portal_object.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-Factory.define :base_portal_object do |p|
-  p.name 'general_permission_scope'
-end
diff --git a/src/spec/factories/permission.rb b/src/spec/factories/permission.rb
index 0e99f97..eadcc4c 100644
--- a/src/spec/factories/permission.rb
+++ b/src/spec/factories/permission.rb
@@ -1,14 +1,21 @@
 Factory.define :permission do |p|
+   p.after_build { |p| p.user.permissions << p }
 end
 
 Factory.define :admin_permission, :parent => :permission do |p|
-  p.role { |r| r.association(:admin_role) }
-  p.permission_object { |r| r.association(:base_portal_object) }
-  p.user { |r| r.association(:admin_user) }
+  p.role { |r| Role.find(:first, :conditions => ['name = ?', 'Site 
Administrator']) }
+  p.permission_object { |r| BasePortalObject.general_permission_scope }
+  p.user { |u| u.association(:admin_user) }
 end
 
 Factory.define :provider_admin_permission, :parent => :permission do |p|
-  p.role { |r| r.association(:provider_admin_role) }
-  p.permission_object { |r| r.association(:mock1) }
-  p.user { |r| r.association(:provider_admin_user) }
+  p.role { |r| Role.find(:first, :conditions => ['name = ?', 'Provider 
Administrator']) }
+  p.permission_object { |r| r.association(:mock_provider) }
+  p.user { |u| u.association(:provider_admin_user) }
+end
+
+Factory.define :pool_creator_permission, :parent => :permission do |p|
+  p.role { |r| Role.find(:first, :conditions => ['name = ?', 'Pool Creator']) }
+  p.permission_object { |r| r.association(:mock_provider) }
+  p.user { |u| u.association(:pool_creator) }
 end
diff --git a/src/spec/factories/privilege.rb b/src/spec/factories/privilege.rb
deleted file mode 100644
index 46bdeb4..0000000
--- a/src/spec/factories/privilege.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-Factory.define :privilege do |p|
-end
-
-Factory.define :modify_pool_priv, :parent => :privilege do |p|
-  p.name 'pool_modify'
-end
-
-Factory.define :modify_provider_priv, :parent => :privilege do |p|
-  p.name 'provider_modify'
-end
-
-Factory.define :view_provider_priv, :parent => :privilege do |p|
-  p.name 'provider_view'
-end
diff --git a/src/spec/factories/provider.rb b/src/spec/factories/provider.rb
index ae1abd2..921d54b 100644
--- a/src/spec/factories/provider.rb
+++ b/src/spec/factories/provider.rb
@@ -1,7 +1,7 @@
 Factory.define :provider do |p|
 end
 
-Factory.define :mock1, :parent => :provider do |p|
+Factory.define :mock_provider, :parent => :provider do |p|
   p.name 'mock1'
   p.cloud_type 'mock'
   p.url 'http://localhost:3001/api'
diff --git a/src/spec/factories/role.rb b/src/spec/factories/role.rb
deleted file mode 100644
index b126721..0000000
--- a/src/spec/factories/role.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-# FIXME need to flush out all roles w/ all privileges
-
-Factory.define :role do |r|
-end
-
-Factory.define :admin_role, :parent => :role do |r|
-  r.name 'Administrator'
-  r.scope 'BasePortalObject'
-  r.privileges { |p| [ p.association(:modify_pool_priv),
-                       p.association(:modify_provider_priv),
-                       p.association(:view_provider_priv) ] }
-end
-
-Factory.define :instance_creator, :parent => :role do |r|
-  r.name 'Instance Creator and User'
-  r.scope 'PortalPool'
-end
-
-Factory.define :provider_admin_role, :parent => :role do |r|
-  r.name  'Provider Administrator'
-  r.scope 'BasePortalObject'
-  r.privileges { |p| [ p.association(:modify_provider_priv),
-                       p.association(:view_provider_priv) ] }
-end
diff --git a/src/spec/factories/user.rb b/src/spec/factories/user.rb
index 077083b..9a5564d 100644
--- a/src/spec/factories/user.rb
+++ b/src/spec/factories/user.rb
@@ -1,6 +1,6 @@
 Factory.define :user do |u|
-  u.login 'myuser'
-  u.email '[email protected]'
+  u.sequence(:login) { |n| "user#{n}" }
+  u.email { |e| "#{[email protected]" }
   u.password 'secret'
   u.password_confirmation 'secret'
   u.first_name 'John'
@@ -8,16 +8,13 @@ Factory.define :user do |u|
 end
 
 Factory.define :tuser, :parent => :user do |u|
-  u.login 'tuser'
-  u.email '[email protected]'
 end
 
 Factory.define :admin_user, :parent => :user do |u|
-  u.login 'padmin'
-  u.email '[email protected]'
 end
 
 Factory.define :provider_admin_user, :parent => :user do |u|
-  u.login 'provider_admin'
-  u.email '[email protected]'
+end
+
+Factory.define :pool_creator, :parent => :user do |u|
 end
diff --git a/src/spec/fixtures/base_portal_objects.yml 
b/src/spec/fixtures/base_portal_objects.yml
new file mode 100644
index 0000000..a520969
--- /dev/null
+++ b/src/spec/fixtures/base_portal_objects.yml
@@ -0,0 +1,2 @@
+general_permission_scope:
+  name: 'general_permission_scope'
-- 
1.6.2.5

_______________________________________________
deltacloud-devel mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/deltacloud-devel

Reply via email to