Claiming asciicasts
parent
0de5784e68
commit
9e59b19c16
@ -0,0 +1,21 @@
|
||||
class UserTokensController < ApplicationController
|
||||
# before_filter :ensure_authenticated!
|
||||
|
||||
def create
|
||||
ut = current_user.add_user_token(params[:user_token])
|
||||
|
||||
if ut.valid?
|
||||
claimed_num = Asciicast.assign_user(ut.token, current_user)
|
||||
|
||||
if claimed_num > 0
|
||||
notice = "Claimed #{claimed_num} asciicasts, yay!"
|
||||
else
|
||||
notice = "Authenticated successfully, yippie!"
|
||||
end
|
||||
|
||||
redirect_to root_path, :notice => notice
|
||||
else
|
||||
render :error
|
||||
end
|
||||
end
|
||||
end
|
@ -0,0 +1,3 @@
|
||||
<h2>Oops.</h2>
|
||||
|
||||
<p>Seems like the token is incorrect. Please make sure you've pasted it correctly.</p>
|
@ -0,0 +1,49 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe UserTokensController do
|
||||
describe '#create' do
|
||||
let(:user) { Factory(:user) }
|
||||
let(:user_token) { Factory.build(:user_token, :user => nil) }
|
||||
|
||||
before do
|
||||
@controller.stub!(:current_user => user)
|
||||
user.stub!(:add_user_token => user_token)
|
||||
end
|
||||
|
||||
context 'when given token is valid' do
|
||||
before do
|
||||
user_token.stub!(:valid? => true)
|
||||
end
|
||||
|
||||
it 'calls Asciicast.assign_user' do
|
||||
Asciicast.should_receive(:assign_user).with(user_token.token, user).and_return(1)
|
||||
|
||||
post :create, :user_token => user_token.token
|
||||
end
|
||||
|
||||
it 'redirects to root_path' do
|
||||
post :create, :user_token => user_token.token
|
||||
|
||||
response.should redirect_to(root_path)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when given token is invalid' do
|
||||
before do
|
||||
user_token.stub!(:valid? => false)
|
||||
end
|
||||
|
||||
it 'calls Asciicast.assign_user' do
|
||||
Asciicast.should_not_receive(:assign_user)
|
||||
|
||||
post :create, :user_token => user_token.token
|
||||
end
|
||||
|
||||
it 'renders :error' do
|
||||
post :create, :user_token => user_token.token
|
||||
|
||||
response.should render_template(:error)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -1,5 +1,7 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe UserToken do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
it "has valid factory" do
|
||||
Factory.build(:user_token).should be_valid
|
||||
end
|
||||
end
|
||||
|
@ -0,0 +1,11 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'connect routing' do
|
||||
it 'routes /connect/:user_token to user_tokens#create for user_token' do
|
||||
{ :get => '/connect/jolka-misio' }.should route_to(
|
||||
:controller => 'user_tokens',
|
||||
:action => 'create',
|
||||
:user_token => 'jolka-misio'
|
||||
)
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue