diff --git a/lib/split/helper.rb b/lib/split/helper.rb index 794e1f8e..61adc464 100644 --- a/lib/split/helper.rb +++ b/lib/split/helper.rb @@ -166,7 +166,7 @@ def control_variable(control) def start_trial(trial) experiment = trial.experiment - if override_present?(experiment.name) + if override_present?(experiment.name) and experiment[override_alternative(experiment.name)] ret = override_alternative(experiment.name) ab_user[experiment.key] = ret if Split.configuration.store_override elsif experiment.has_winner? diff --git a/spec/helper_spec.rb b/spec/helper_spec.rb index baac05c8..2455aa43 100755 --- a/spec/helper_spec.rb +++ b/spec/helper_spec.rb @@ -101,6 +101,12 @@ alternative.should eql('red') end + it "should not allow an arbitrary alternative" do + @params = {'link_color' => 'pink'} + alternative = ab_test('link_color', 'blue') + alternative.should eql('blue') + end + it "should not store the split when a param forced alternative" do @params = {'link_color' => 'blue'} ab_user.should_not_receive(:[]=)