diff --git a/app/models/friend.rb b/app/models/friend.rb index 319762eefe81eb0fa603788c9f7562f9b0656fe2..7f3463dd2f98425299af15da1a14abc361819fad 100644 --- a/app/models/friend.rb +++ b/app/models/friend.rb @@ -4,11 +4,13 @@ class Friend xml_accessor :username xml_accessor :url + xml_accessor :real_name field :username field :url + field :real_name - validates_presence_of :username, :url + validates_presence_of :username, :url, :real_name validates_format_of :url, :with => /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix diff --git a/app/models/user.rb b/app/models/user.rb index 2c5c134b539e7a08d29cc794574ae526389cac23..45624f10ed5e7e8de51922a5c6aec2a37e2ff9eb 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,9 +1,13 @@ class User include Mongoid::Document - + # Include default devise modules. Others available are: # :token_authenticatable, :confirmable, :lockable and :timeoutable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable + + field :real_name + + validates_presence_of :real_name end diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index deab8559ad4b499b7b4ad2714a21c2b5b6eabbb9..441a285bc65924cd92556cbb5385bad82f20b8b9 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -44,7 +44,7 @@ #header_below - if user_signed_in? %h1#user_name - = link_to User.first.email, root_url + = link_to User.first.real_name, root_url %span.description - if StatusMessage.my_newest = StatusMessage.my_newest.message @@ -71,4 +71,4 @@ = yield #debug - .msg \ No newline at end of file + .msg diff --git a/spec/controllers/blogs_controller_spec.rb b/spec/controllers/blogs_controller_spec.rb index 71c503ccb6ff37659f4dac5976e86e148226ac28..545dc414f3ee8f05cf90ebdfcaaf934290fa95e4 100644 --- a/spec/controllers/blogs_controller_spec.rb +++ b/spec/controllers/blogs_controller_spec.rb @@ -4,8 +4,10 @@ describe BlogsController do before do #TODO(dan) Mocking Warden; this is a temp fix request.env['warden'] = mock_model(Warden, :authenticate? => @user, :authenticate! => @user) - User.create(:email => "bob@aol.com", :password => "secret") - Blog.create(:title => "hello", :body => "sir") + u = Factory.build(:user, :email => "bob@aol.com", :password => "secret") + b = Factory.build(:blog, :title => "hello", :body => "sir") + u.save + b.save end render_views diff --git a/spec/factories.rb b/spec/factories.rb index 5997c11e59f92b97c78700aeddad0362d63fe843..236e2984d3c043fb0a6a87059f071a44955f2301 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -3,6 +3,7 @@ #http://railscasts.com/episodes/158-factories-not-fixtures Factory.define :friend do |f| + f.real_name 'John Doe' f.username 'max' f.url 'http://max.com/' end @@ -17,6 +18,7 @@ Factory.define :blog do |b| end Factory.define :user do |u| + u.real_name 'Bob Smith' u.sequence(:email) {|n| "bob#{n}@aol.com"} u.password "bluepin7" end diff --git a/spec/models/friend_spec.rb b/spec/models/friend_spec.rb index 4ccf0ee7c47439e6696d3be222f1fa4231f54fae..4ec6cf848aa6827788282b2c51090abce80c533d 100644 --- a/spec/models/friend_spec.rb +++ b/spec/models/friend_spec.rb @@ -2,13 +2,20 @@ require File.dirname(__FILE__) + '/../spec_helper' describe Friend do - it 'should have a diaspora username and diaspora url' do - n = Factory.build(:friend, :url => "") + it 'should require a diaspora username and diaspora url' do + n = Factory.build(:friend, :url => nil) n.valid?.should be false n.url = "http://max.com/" n.valid?.should be true end + it 'should require a real name' do + n = Factory.build(:friend, :real_name => nil) + n.valid?.should be false + n.real_name = "John Smith" + n.valid?.should be true + end + it 'should validate its url' do friend = Factory.build(:friend) @@ -57,7 +64,7 @@ describe Friend do describe "XML" do before do @f = Factory.build(:friend) - @xml = "<friend>\n <username>#{@f.username}</username>\n <url>#{@f.url}</url>\n</friend>" + @xml = "<friend>\n <username>#{@f.username}</username>\n <url>#{@f.url}</url>\n <real_name>#{@f.real_name}</real_name>\n</friend>" end it 'should serialize to XML' do diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 0f545327b2ca172410ccdbeee3af341499650aa3..07b2c57b37f8c634265708c755b473d2fe1b6ffb 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1,4 +1,11 @@ require 'spec_helper' describe User do + it "should require a real name" do + u = Factory.build(:user, :real_name => nil) + u.valid?.should be false + u.real_name = "John Smith" + u.valid?.should be true + end + end