Commit 831ab2f8ac9359dd1167c01cc52699956a36440a
1 parent
7328898f
Exists in
master
and in
1 other branch
Add an endpoint for /notifier_api/v2/notices
Showing
3 changed files
with
37 additions
and
56 deletions
Show diff stats
config/routes.rb
| 1 | Hypnotoad::Application.routes.draw do | 1 | Hypnotoad::Application.routes.draw do |
| 2 | - # The priority is based upon order of creation: | ||
| 3 | - # first created -> highest priority. | ||
| 4 | - | ||
| 5 | - # Sample of regular route: | ||
| 6 | - # match 'products/:id' => 'catalog#view' | ||
| 7 | - # Keep in mind you can assign values other than :controller and :action | ||
| 8 | - | ||
| 9 | - # Sample of named route: | ||
| 10 | - # match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase | ||
| 11 | - # This route can be invoked with purchase_url(:id => product.id) | ||
| 12 | - | ||
| 13 | - # Sample resource route (maps HTTP verbs to controller actions automatically): | ||
| 14 | - # resources :products | ||
| 15 | - | ||
| 16 | - # Sample resource route with options: | ||
| 17 | - # resources :products do | ||
| 18 | - # member do | ||
| 19 | - # get :short | ||
| 20 | - # post :toggle | ||
| 21 | - # end | ||
| 22 | - # | ||
| 23 | - # collection do | ||
| 24 | - # get :sold | ||
| 25 | - # end | ||
| 26 | - # end | ||
| 27 | - | ||
| 28 | - # Sample resource route with sub-resources: | ||
| 29 | - # resources :products do | ||
| 30 | - # resources :comments, :sales | ||
| 31 | - # resource :seller | ||
| 32 | - # end | ||
| 33 | - | ||
| 34 | - # Sample resource route with more complex sub-resources | ||
| 35 | - # resources :products do | ||
| 36 | - # resources :comments | ||
| 37 | - # resources :sales do | ||
| 38 | - # get :recent, :on => :collection | ||
| 39 | - # end | ||
| 40 | - # end | ||
| 41 | - | ||
| 42 | - # Sample resource route within a namespace: | ||
| 43 | - # namespace :admin do | ||
| 44 | - # # Directs /admin/products/* to Admin::ProductsController | ||
| 45 | - # # (app/controllers/admin/products_controller.rb) | ||
| 46 | - # resources :products | ||
| 47 | - # end | ||
| 48 | - | ||
| 49 | - # You can have the root of your site routed with "root" | ||
| 50 | - # just remember to delete public/index.html. | ||
| 51 | - # root :to => "welcome#index" | ||
| 52 | - | ||
| 53 | - # See how all your routes lay out with "rake routes" | ||
| 54 | - | ||
| 55 | - # This is a legacy wild controller route that's not recommended for RESTful applications. | ||
| 56 | - # Note: This route will make all actions in every controller accessible via GET requests. | ||
| 57 | - # match ':controller(/:action(/:id(.:format)))' | 2 | + |
| 3 | + # Hoptoad Notifier Routes | ||
| 4 | + match '/notifier_api/v2/notices' => 'notices#create' | ||
| 5 | + # match '/deploys.txt' => 'deploys#create' | ||
| 6 | + | ||
| 7 | + resources :notices | ||
| 8 | + | ||
| 58 | end | 9 | end |
| @@ -0,0 +1,21 @@ | @@ -0,0 +1,21 @@ | ||
| 1 | +require 'spec_helper' | ||
| 2 | + | ||
| 3 | +describe NoticesController do | ||
| 4 | + | ||
| 5 | + context 'POST[XML] notices#create' do | ||
| 6 | + before do | ||
| 7 | + @xml = Rails.root.join('spec','fixtures','hoptoad_test_notice.xml').read | ||
| 8 | + @notice = Notice.from_xml(@xml) | ||
| 9 | + | ||
| 10 | + request.env['Content-type'] = 'text/xml' | ||
| 11 | + request.env['Accept'] = 'text/xml, application/xml' | ||
| 12 | + request.should_receive(:raw_post).and_return(@xml) | ||
| 13 | + end | ||
| 14 | + | ||
| 15 | + it "generates a notice from the xml" do | ||
| 16 | + Notice.should_receive(:from_xml).with(@xml).and_return(@notice) | ||
| 17 | + post :create | ||
| 18 | + end | ||
| 19 | + end | ||
| 20 | + | ||
| 21 | +end |