Browse Source

domain and subdomain ownership wiring

pull/1/head
Nicolae Claudius 13 years ago
parent
commit
489abcd698
  1. 2
      app/controllers/domains_controller.rb
  2. 1
      app/models/domain.rb
  3. 74
      spec/controllers/domains_controller_spec.rb

2
app/controllers/domains_controller.rb

@ -31,7 +31,7 @@ class DomainsController < ApplicationController
def before_create_save(record) def before_create_save(record)
record.type = 'NATIVE' record.type = 'NATIVE'
record.user = current_user record.user = record.parent_domain.present? ? record.parent_domain.user : current_user
end end
def after_create_save(record) def after_create_save(record)

1
app/models/domain.rb

@ -56,6 +56,7 @@ class Domain < ActiveRecord::Base
end end
def parent_domain def parent_domain
return nil if name.nil?
@parent_domain ||= {} @parent_domain ||= {}
@parent_domain[name] ||= begin @parent_domain[name] ||= begin
segments = name.split('.') segments = name.split('.')

74
spec/controllers/domains_controller_spec.rb

@ -1,51 +1,85 @@
require 'spec_helper' require 'spec_helper'
describe DomainsController do describe DomainsController do
it_should_behave_like "wiring controller"
context "wiring" do
include_context "data"
# a domain who's parent domain is not in our system
context "domain" do
before do
sign_in user
end
it "is wired with the current user by #new_model" do
@controller.send(:new_model).user.should == user
end
it "is wired with the current user by #before_create_save" do
domain = build(:domain)
@controller.send(:before_create_save, domain)
domain.user.should == user
end
end
# a domain who's parent domain is in our system
context "subdomain" do
before do
sign_in other_user
end
it "is wired with the user of the parent domain by #before_create_save" do
subdomain = build(:domain, :user => other_user, :name => "x.#{domain.name}")
@controller.send(:before_create_save, subdomain)
subdomain.user.should == user
end
end
end
end end
# TODO implement me # TODO implement me
__END__ __END__
# This should return the minimal set of attributes required to create a valid # This should return the minimal set of attributes required to create a valid
# Domain. As you add validations to Domain, be sure to # Domain. As you add validations to Domain, be sure to
# update the return value of this method accordingly. # update the return value of this method accordingly.
def valid_attributes def valid_attributes
{} {}
end end
describe "GET index" do describe "GET index" do
it "assigns all domains as @domains" do it "assigns all domains as @domains" do
domain = Domain.create! valid_attributes domain = Domain.create! valid_attributes
get :index get :index
assigns(:domains).should eq([domain]) assigns(:domains).should eq([domain])
end end
end end
describe "GET show" do describe "GET show" do
it "assigns the requested domain as @domain" do it "assigns the requested domain as @domain" do
domain = Domain.create! valid_attributes domain = Domain.create! valid_attributes
get :show, :id => domain.id.to_s get :show, :id => domain.id.to_s
assigns(:domain).should eq(domain) assigns(:domain).should eq(domain)
end end
end end
describe "GET new" do describe "GET new" do
it "assigns a new domain as @domain" do it "assigns a new domain as @domain" do
get :new get :new
assigns(:domain).should be_a_new(Domain) assigns(:domain).should be_a_new(Domain)
end end
end end
describe "GET edit" do describe "GET edit" do
it "assigns the requested domain as @domain" do it "assigns the requested domain as @domain" do
domain = Domain.create! valid_attributes domain = Domain.create! valid_attributes
get :edit, :id => domain.id.to_s get :edit, :id => domain.id.to_s
assigns(:domain).should eq(domain) assigns(:domain).should eq(domain)
end end
end end
describe "POST create" do describe "POST create" do
describe "with valid params" do describe "with valid params" do
it "creates a new Domain" do it "creates a new Domain" do
expect { expect {
@ -80,9 +114,9 @@ __END__
response.should render_template("new") response.should render_template("new")
end end
end end
end end
describe "PUT update" do describe "PUT update" do
describe "with valid params" do describe "with valid params" do
it "updates the requested domain" do it "updates the requested domain" do
domain = Domain.create! valid_attributes domain = Domain.create! valid_attributes
@ -124,9 +158,9 @@ __END__
response.should render_template("edit") response.should render_template("edit")
end end
end end
end end
describe "DELETE destroy" do describe "DELETE destroy" do
it "destroys the requested domain" do it "destroys the requested domain" do
domain = Domain.create! valid_attributes domain = Domain.create! valid_attributes
expect { expect {
@ -139,6 +173,6 @@ __END__
delete :destroy, :id => domain.id.to_s delete :destroy, :id => domain.id.to_s
response.should redirect_to(domains_url) response.should redirect_to(domains_url)
end end
end end
end end
Loading…
Cancel
Save