spec/models/trackable_action_spec.rb in mitamirri-0.13.8 vs spec/models/trackable_action_spec.rb in mitamirri-2.0.8
- old
+ new
@@ -1,42 +1,74 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
-require 'mitamirri'
-describe "TrackableAction" do
-
+describe TrackableAction do
+
+ it 'returns a list of tracked actions' do
+ TrackableAction.delete_all
+ TrackableAction.create(:kind => 'clicks')
+ TrackableAction.create(:kind => 'conversion')
+ TrackableAction.kinds.include?('clicks').should be_true
+ TrackableAction.kinds.include?('conversion').should be_true
+ TrackableAction.kinds.should have(2).items
+ end
+
+ it 'returns a histogram of pages' do
+ TrackableAction.delete_all
+ ts = TrackableSession.make(:views_count => 3)
+ ts.trackable_actions.create!(:kind => 'view', :url => 'http://www.seologic.com/foo')
+ ts.trackable_actions.create!(:kind => 'view', :url => 'http://www.seologic.com/bar')
+ ts.trackable_actions.create!(:kind => 'view', :url => 'http://www.seologic.com/bar')
+ h = TrackableAction.pages_histogram({})
+ hash = Hash[*h.flatten]
+ hash['/foo'].should == 1.0
+ hash['/bar'].should == 2.0
+ end
+
describe 'creates a new object from parameters' do
-
+
before :all do
@new = TrackableAction.create_from_params(
:session_id => 123456,
- :referrer => '/',
+ :referrer => 'http://www.cnn.com/',
:ip_address => '123.123.123.1',
:site => 'www.seologic.com',
:kind => 'click',
:label => 'Some Random Click',
:url => 'http://www.seologic.com/foo/bar/'
)
end
-
+
it 'with a kind' do
@new.kind.should == 'click'
end
-
- it 'with a label' do
+
+ it 'with a label' do
@new.label.should == 'Some Random Click'
end
-
+
it 'with a referrer' do
- @new.referrer.should == '/'
+ @new.referrer.should == 'http://www.cnn.com/'
end
-
+
it 'with a URL' do
@new.url.should == 'http://www.seologic.com/foo/bar/'
end
-
+
it 'with an associated trackable session' do
@new.trackable_session_id.should_not be_nil
end
-
+
+ it 'rejects an unparsable referrer URL' do
+ TrackableAction.create_from_params(
+ :session_id => 123456,
+ :referrer => '/foo/bar',
+ :ip_address => '123.123.123.1',
+ :site => 'www.seologic.com',
+ :kind => 'click',
+ :label => 'Some Random Click',
+ :url => 'http://www.seologic.com/foo/bar/'
+ ).referrer.should == '/foo/bar'
+ end
+
end
-
+
end