| 
									
										
										
										
											2017-05-30 01:12:54 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require 'rails_helper' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe ApplicationController, type: :controller do | 
					
						
							|  |  |  |   controller do | 
					
						
							|  |  |  |     include AccountControllerConcern | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def success | 
					
						
							|  |  |  |       head 200
 | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   before do | 
					
						
							|  |  |  |     routes.draw { get 'success' => 'anonymous#success' } | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   context 'when account is suspended' do | 
					
						
							|  |  |  |     it 'returns http gone' do | 
					
						
							| 
									
										
										
										
											2019-03-14 05:28:30 +01:00
										 |  |  |       account = Fabricate(:account, suspended: true, user: Fabricate(:user)) | 
					
						
							|  |  |  |       get 'success', params: { account_username: account.username } | 
					
						
							|  |  |  |       expect(response).to have_http_status(410) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   context 'when account is deleted by owner' do | 
					
						
							|  |  |  |     it 'returns http gone' do | 
					
						
							|  |  |  |       account = Fabricate(:account, suspended: true, user: nil) | 
					
						
							| 
									
										
										
										
											2017-05-30 01:12:54 +09:00
										 |  |  |       get 'success', params: { account_username: account.username } | 
					
						
							|  |  |  |       expect(response).to have_http_status(410) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   context 'when account is not suspended' do | 
					
						
							|  |  |  |     it 'assigns @account' do | 
					
						
							| 
									
										
										
										
											2019-03-14 05:28:30 +01:00
										 |  |  |       account = Fabricate(:account, user: Fabricate(:user)) | 
					
						
							| 
									
										
										
										
											2017-05-30 01:12:54 +09:00
										 |  |  |       get 'success', params: { account_username: account.username } | 
					
						
							|  |  |  |       expect(assigns(:account)).to eq account | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it 'sets link headers' do | 
					
						
							| 
									
										
										
										
											2019-03-14 05:28:30 +01:00
										 |  |  |       account = Fabricate(:account, username: 'username', user: Fabricate(:user)) | 
					
						
							| 
									
										
										
										
											2017-05-30 01:12:54 +09:00
										 |  |  |       get 'success', params: { account_username: 'username' } | 
					
						
							| 
									
										
										
										
											2019-07-08 12:03:45 +02:00
										 |  |  |       expect(response.headers['Link'].to_s).to eq '<http://test.host/.well-known/webfinger?resource=acct%3Ausername%40cb6e6126.ngrok.io>; rel="lrdd"; type="application/jrd+json", <https://cb6e6126.ngrok.io/users/username>; rel="alternate"; type="application/activity+json"' | 
					
						
							| 
									
										
										
										
											2017-05-30 01:12:54 +09:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it 'returns http success' do | 
					
						
							| 
									
										
										
										
											2019-03-14 05:28:30 +01:00
										 |  |  |       account = Fabricate(:account, user: Fabricate(:user)) | 
					
						
							| 
									
										
										
										
											2017-05-30 01:12:54 +09:00
										 |  |  |       get 'success', params: { account_username: account.username } | 
					
						
							| 
									
										
										
										
											2018-04-22 04:35:07 +09:00
										 |  |  |       expect(response).to have_http_status(200) | 
					
						
							| 
									
										
										
										
											2017-05-30 01:12:54 +09:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |