diff --git a/plugins/stoa/test/functional/stoa_plugin_controller_test.rb b/plugins/stoa/test/functional/stoa_plugin_controller_test.rb index 329940c..18ce095 100644 --- a/plugins/stoa/test/functional/stoa_plugin_controller_test.rb +++ b/plugins/stoa/test/functional/stoa_plugin_controller_test.rb @@ -22,13 +22,17 @@ class StoaPluginControllerTest < ActionController::TestCase t.date "dtanas" end ActiveRecord::Base.establish_connection(:test) - @user = User.find_by_login('real_user') || create_user('real_user', :password => '123456', :password_confirmation => '123456') + env = Environment.default + env.enable_plugin(StoaPlugin.name) + env.enable('skip_new_user_email_confirmation') + env.save! + @user = create_user_full('real_user', {:password => '123456', :password_confirmation => '123456'}, {:usp_id => 9999999}) StoaPlugin::UspUser.create!(:codpes => 12345678, :cpf => Digest::MD5.hexdigest(SALT+'12345678'), :birth_date => '1970-01-30') - Environment.default.enable_plugin(StoaPlugin.name) end def teardown @db.unlink + @user.destroy end attr_accessor :user diff --git a/plugins/stoa/test/unit/person.rb b/plugins/stoa/test/unit/person.rb deleted file mode 100644 index 9f87d78..0000000 --- a/plugins/stoa/test/unit/person.rb +++ /dev/null @@ -1,65 +0,0 @@ -require File.dirname(__FILE__) + '/../../../../test/test_helper' - -class StoaPlugin::Person < ActiveSupport::TestCase - - def setup - @environment = Environment.default - @environment.enable_plugin(StoaPlugin) - end - - attr_reader :environment - - should 'validates uniqueness of usp_id' do - usp_id = 87654321 - fast_create(Person, :usp_id => usp_id) - another_person = Person.new(:usp_id => usp_id) - another_person.valid? - - assert another_person.errors.invalid?(:usp_id) - end - - should 'allow nil usp_id only if person has an invitation_code' do - person = Person.new(:environment => environment) - person.valid? - assert person.errors.invalid?(:usp_id) - - Task.create!(:code => 12345678) - person.invitation_code = 12345678 - person.valid? - - assert !person.errors.invalid?(:usp_id) - end - - should 'allow multiple nil usp_id' do - fast_create(Person) - Task.create!(:code => 87654321) - person = Person.new(:invitation_code => 87654321) - person.valid? - - assert !person.errors.invalid?(:usp_id) - end - - should 'not allow person to be saved with a finished invitation that is not his own' do - t = Task.create!(:code => 87654321, :target_id => 1) - t.finish - person = Person.new(:environment => environment, :invitation_code => 87654321) - person.valid? - - assert person.errors.invalid?(:usp_id) - end - - should 'allow person to be saved with a finished invitation if it is his own' do - t = Task.create!(:code => 87654321) - user = User.new(:login => 'some-person', :email => 'some-person@example.com', :password => 'test', :password_confirmation => 'test', :person_data => {:environment => environment, :invitation_code => 87654321}) - user.save! - person = user.person - t.target_id = person.id - t.finish - - person.valid? - assert !person.errors.invalid?(:usp_id) - end - - -end - diff --git a/plugins/stoa/test/unit/person_test.rb b/plugins/stoa/test/unit/person_test.rb new file mode 100644 index 0000000..9f87d78 --- /dev/null +++ b/plugins/stoa/test/unit/person_test.rb @@ -0,0 +1,65 @@ +require File.dirname(__FILE__) + '/../../../../test/test_helper' + +class StoaPlugin::Person < ActiveSupport::TestCase + + def setup + @environment = Environment.default + @environment.enable_plugin(StoaPlugin) + end + + attr_reader :environment + + should 'validates uniqueness of usp_id' do + usp_id = 87654321 + fast_create(Person, :usp_id => usp_id) + another_person = Person.new(:usp_id => usp_id) + another_person.valid? + + assert another_person.errors.invalid?(:usp_id) + end + + should 'allow nil usp_id only if person has an invitation_code' do + person = Person.new(:environment => environment) + person.valid? + assert person.errors.invalid?(:usp_id) + + Task.create!(:code => 12345678) + person.invitation_code = 12345678 + person.valid? + + assert !person.errors.invalid?(:usp_id) + end + + should 'allow multiple nil usp_id' do + fast_create(Person) + Task.create!(:code => 87654321) + person = Person.new(:invitation_code => 87654321) + person.valid? + + assert !person.errors.invalid?(:usp_id) + end + + should 'not allow person to be saved with a finished invitation that is not his own' do + t = Task.create!(:code => 87654321, :target_id => 1) + t.finish + person = Person.new(:environment => environment, :invitation_code => 87654321) + person.valid? + + assert person.errors.invalid?(:usp_id) + end + + should 'allow person to be saved with a finished invitation if it is his own' do + t = Task.create!(:code => 87654321) + user = User.new(:login => 'some-person', :email => 'some-person@example.com', :password => 'test', :password_confirmation => 'test', :person_data => {:environment => environment, :invitation_code => 87654321}) + user.save! + person = user.person + t.target_id = person.id + t.finish + + person.valid? + assert !person.errors.invalid?(:usp_id) + end + + +end + diff --git a/plugins/stoa/test/unit/usp_user.rb b/plugins/stoa/test/unit/usp_user.rb deleted file mode 100644 index 2fa9704..0000000 --- a/plugins/stoa/test/unit/usp_user.rb +++ /dev/null @@ -1,47 +0,0 @@ -require File.dirname(__FILE__) + '/../../../../test/test_helper' - -class StoaPlugin::UspUserTest < ActiveSupport::TestCase - - SALT=YAML::load(File.open(StoaPlugin.root_path + '/config.yml'))['salt'] - - def setup - @db = Tempfile.new('stoa-test') - configs = ActiveRecord::Base.configurations['stoa'] = {:adapter => 'sqlite3', :database => @db.path} - ActiveRecord::Base.establish_connection(:stoa) - ActiveRecord::Schema.verbose = false - ActiveRecord::Schema.create_table "pessoa" do |t| - t.integer "codpes" - t.text "numcpf" - t.date "dtanas" - end - ActiveRecord::Base.establish_connection(:test) - StoaPlugin::UspUser.create!(:codpes => 123456, :cpf => Digest::MD5.hexdigest(SALT+'12345678'), :birth_date => '1970-01-30') - end - - def teardown - @db.unlink - end - - should 'check existence of usp_id' do - assert StoaPlugin::UspUser.exists?(123456) - assert !StoaPlugin::UspUser.exists?(654321) - end - - should 'check if usp_id matches with a cpf' do - assert StoaPlugin::UspUser.matches?(123456, :cpf, 12345678) - assert !StoaPlugin::UspUser.matches?(123456, :cpf, 87654321) - assert !StoaPlugin::UspUser.matches?(654321, :cpf, 12345678) - end - - should 'check if usp_id matches with a birth_date' do - assert StoaPlugin::UspUser.matches?(123456, :birth_date, '1970-01-30') - assert !StoaPlugin::UspUser.matches?(123456, :birth_date, '1999-01-30') - assert !StoaPlugin::UspUser.matches?(654321, :birth_date, '1970-01-30') - end - - should 'filter leading zeroes of id codes on exists and matches' do - assert StoaPlugin::UspUser.exists?('0000123456') - assert StoaPlugin::UspUser.matches?(123456, :cpf, '00012345678') - end -end - diff --git a/plugins/stoa/test/unit/usp_user_test.rb b/plugins/stoa/test/unit/usp_user_test.rb new file mode 100644 index 0000000..2fa9704 --- /dev/null +++ b/plugins/stoa/test/unit/usp_user_test.rb @@ -0,0 +1,47 @@ +require File.dirname(__FILE__) + '/../../../../test/test_helper' + +class StoaPlugin::UspUserTest < ActiveSupport::TestCase + + SALT=YAML::load(File.open(StoaPlugin.root_path + '/config.yml'))['salt'] + + def setup + @db = Tempfile.new('stoa-test') + configs = ActiveRecord::Base.configurations['stoa'] = {:adapter => 'sqlite3', :database => @db.path} + ActiveRecord::Base.establish_connection(:stoa) + ActiveRecord::Schema.verbose = false + ActiveRecord::Schema.create_table "pessoa" do |t| + t.integer "codpes" + t.text "numcpf" + t.date "dtanas" + end + ActiveRecord::Base.establish_connection(:test) + StoaPlugin::UspUser.create!(:codpes => 123456, :cpf => Digest::MD5.hexdigest(SALT+'12345678'), :birth_date => '1970-01-30') + end + + def teardown + @db.unlink + end + + should 'check existence of usp_id' do + assert StoaPlugin::UspUser.exists?(123456) + assert !StoaPlugin::UspUser.exists?(654321) + end + + should 'check if usp_id matches with a cpf' do + assert StoaPlugin::UspUser.matches?(123456, :cpf, 12345678) + assert !StoaPlugin::UspUser.matches?(123456, :cpf, 87654321) + assert !StoaPlugin::UspUser.matches?(654321, :cpf, 12345678) + end + + should 'check if usp_id matches with a birth_date' do + assert StoaPlugin::UspUser.matches?(123456, :birth_date, '1970-01-30') + assert !StoaPlugin::UspUser.matches?(123456, :birth_date, '1999-01-30') + assert !StoaPlugin::UspUser.matches?(654321, :birth_date, '1970-01-30') + end + + should 'filter leading zeroes of id codes on exists and matches' do + assert StoaPlugin::UspUser.exists?('0000123456') + assert StoaPlugin::UspUser.matches?(123456, :cpf, '00012345678') + end +end + diff --git a/test/factories.rb b/test/factories.rb index d6cd661..8d04e78 100644 --- a/test/factories.rb +++ b/test/factories.rb @@ -80,8 +80,8 @@ module Noosfero::Factory :password_confirmation => name.underscore }.merge(options) user = User.new(data) + user.person = Person.new(person_options) user.save! - user.person.update_attributes!(person_data.merge(person_options)) user end @@ -114,7 +114,6 @@ module Noosfero::Factory fast_update(person, {:home_page_id => homepage.id}) box = fast_insert(Box, { :owner_type => "Profile", :owner_id => person.id, :position => 1}) block = fast_insert(Block, { :box_id => box.id, :type => 'MainBlock', :position => 0}) - user.activate user end diff --git a/test/functional/account_controller_test.rb b/test/functional/account_controller_test.rb index 1f6c364..ac2d8e5 100644 --- a/test/functional/account_controller_test.rb +++ b/test/functional/account_controller_test.rb @@ -622,14 +622,14 @@ class AccountControllerTest < ActionController::TestCase @controller.expects(:environment).returns(env).at_least_once profile = create_user('mylogin').person get :check_url, :identifier => 'mylogin' - assert_equal 'available', assigns(:status_class) + assert_equal 'validated', assigns(:status_class) end should 'check if url is not available on environment' do @controller.expects(:environment).returns(Environment.default).at_least_once profile = create_user('mylogin').person get :check_url, :identifier => 'mylogin' - assert_equal 'unavailable', assigns(:status_class) + assert_equal 'invalid', assigns(:status_class) end should 'check if e-mail is available on environment' do @@ -637,7 +637,7 @@ class AccountControllerTest < ActionController::TestCase @controller.expects(:environment).returns(env).at_least_once profile = create_user('mylogin', :email => 'mylogin@noosfero.org', :environment_id => fast_create(Environment).id) get :check_email, :address => 'mylogin@noosfero.org' - assert_equal 'available', assigns(:status_class) + assert_equal 'validated', assigns(:status_class) end should 'check if e-mail is not available on environment' do @@ -645,7 +645,7 @@ class AccountControllerTest < ActionController::TestCase @controller.expects(:environment).returns(env).at_least_once profile = create_user('mylogin', :email => 'mylogin@noosfero.org', :environment_id => env) get :check_email, :address => 'mylogin@noosfero.org' - assert_equal 'unavailable', assigns(:status_class) + assert_equal 'invalid', assigns(:status_class) end should 'merge user data with extra stuff from plugins' do @@ -766,7 +766,6 @@ class AccountControllerTest < ActionController::TestCase assert_tag :tag => 'strong', :content => 'Plugin1 text' assert_tag :tag => 'strong', :content => 'Plugin2 text' ->>>>>>> stoa-full-invitation-and-signup end protected -- libgit2 0.21.2