<commit_before>require 'spec_helper'

describe Exvo::Helpers do

  describe ".env class method" do
    it "should fall back to 'production' if Rails & Merb are undefined" do
      Exvo::Helpers.env.should eql('production')
    end

    it "returns 'production' when Rails.env is set to 'production'" do
      Kernel.const_set(:Rails, Module)
      Rails.should_receive(:env).and_return('production')
      Exvo::Helpers.env.should eql('production')
      Kernel.send(:remove_const, :Rails)
    end

    it "allows setting env" do
      Exvo::Helpers.env = 'test'
      Exvo::Helpers.env.should eql('test')
    end

    after do
      Exvo::Helpers.env = nil
    end
  end

  describe "uri methods in production environment" do
    specify { Exvo::Helpers.auth_uri.should match('auth.exvo.com') }
    specify { Exvo::Helpers.cdn_uri.should match('d33gjlr95u9pgf.cloudfront.net') }
    specify { Exvo::Helpers.cfs_uri.should match('cfs.exvo.com') }
    specify { Exvo::Helpers.desktop_uri.should match('www.exvo.com') }
    specify { Exvo::Helpers.themes_uri.should match('themes.exvo.com') }
    specify { Exvo::Helpers.blog_uri.should match('blog.exvo.com') }
    specify { Exvo::Helpers.contacts_uri.should match('contacts.exvo.com') }
    specify { Exvo::Helpers.inbox_uri.should match('inbox.exvo.com') }
    specify { Exvo::Helpers.music_uri.should match('music.exvo.com') }
    specify { Exvo::Helpers.pics_uri.should match('pics.exvo.com') }
    specify { Exvo::Helpers.preview_uri.should match('preview.exvo.com') }
  end

  describe "host methods in production environment" do
    specify { Exvo::Helpers.auth_host.should match('auth.exvo.com') }
    specify { Exvo::Helpers.cdn_host.should eql('d33gjlr95u9pgf.cloudfront.net') }
    specify { Exvo::Helpers.cfs_host.should eql('cfs.exvo.com') }
    specify { Exvo::Helpers.desktop_host.should eql('www.exvo.com') }
    specify { Exvo::Helpers.themes_host.should eql('themes.exvo.com') }
    specify { Exvo::Helpers.blog_host.should eql('blog.exvo.com') }
    specify { Exvo::Helpers.contacts_host.should eql('contacts.exvo.com') }
    specify { Exvo::Helpers.inbox_host.should eql('inbox.exvo.com') }
    specify { Exvo::Helpers.music_host.should eql('music.exvo.com') }
    specify { Exvo::Helpers.pics_host.should eql('pics.exvo.com') }
    specify { Exvo::Helpers.preview_host.should eql('preview.exvo.com') }
  end

  describe "#auth_debug and #auth_require_ssl" do
    specify { Exvo::Helpers.auth_debug.should be_false }
    specify { Exvo::Helpers.auth_require_ssl.should be_true }<commit_msg>Fix specs changing global state<commit_after>require 'spec_helper'

describe Exvo::Helpers do

  describe ".env class method" do
    it "should fall back to 'production' if Rails & Merb are undefined" do
      Exvo::Helpers.env.should eql('production')
    end

    it "returns 'production' when Rails.env is set to 'production'" do
      Kernel.const_set(:Rails, Module)
      Rails.should_receive(:env).and_return('production')
      Exvo::Helpers.env.should eql('production')
      Kernel.send(:remove_const, :Rails)
    end

    it "allows setting env" do
      Exvo::Helpers.env = 'test'
      Exvo::Helpers.env.should eql('test')
    end

    after do
      Exvo::Helpers.env = nil
    end
  end

  describe "uri methods in production environment" do
    specify { Exvo::Helpers.auth_uri.should match('auth.exvo.com') }
    specify { Exvo::Helpers.cdn_uri.should match('d33gjlr95u9pgf.cloudfront.net') }
    specify { Exvo::Helpers.cfs_uri.should match('cfs.exvo.com') }
    specify { Exvo::Helpers.desktop_uri.should match('www.exvo.com') }
    specify { Exvo::Helpers.themes_uri.should match('themes.exvo.com') }
    specify { Exvo::Helpers.blog_uri.should match('blog.exvo.com') }
    specify { Exvo::Helpers.contacts_uri.should match('contacts.exvo.com') }
    specify { Exvo::Helpers.inbox_uri.should match('inbox.exvo.com') }
    specify { Exvo::Helpers.music_uri.should match('music.exvo.com') }
    specify { Exvo::Helpers.pics_uri.should match('pics.exvo.com') }
    specify { Exvo::Helpers.preview_uri.should match('preview.exvo.com') }
  end

  describe "host methods in production environment" do
    specify { Exvo::Helpers.auth_host.should match('auth.exvo.com') }
    specify { Exvo::Helpers.cdn_host.should eql('d33gjlr95u9pgf.cloudfront.net') }
    specify { Exvo::Helpers.cfs_host.should eql('cfs.exvo.com') }
    specify { Exvo::Helpers.desktop_host.should eql('www.exvo.com') }
    specify { Exvo::Helpers.themes_host.should eql('themes.exvo.com') }
    specify { Exvo::Helpers.blog_host.should eql('blog.exvo.com') }
    specify { Exvo::Helpers.contacts_host.should eql('contacts.exvo.com') }
    specify { Exvo::Helpers.inbox_host.should eql('inbox.exvo.com') }
    specify { Exvo::Helpers.music_host.should eql('music.exvo.com') }
    specify { Exvo::Helpers.pics_host.should eql('pics.exvo.com') }
    specify { Exvo::Helpers.preview_host.should eql('preview.exvo.com') }
  end

  describe "#auth_debug by default for production env" do
    specify { Exvo::Helpers.auth_debug.should be_false }

    after do
      # reset cached class instance variable
      Exvo::Helpers.auth_debug = nil
    end
  end

  describe "#auth_require_ssl by default for production env" do
    specify { Exvo::Helpers.auth_require_ssl.should be_true }

    after do
      # reset cached class instance variable
      Exvo::Helpers.auth_require_ssl = nil
    end
{'fraction_non_alphanumeric': 0.13556824461226746, 'fraction_numerical': 0.003683919690550746, 'mean_word_length': 3.927404718693285, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1536656', 'n_tokens_mistral': 1864, 'n_tokens_neox': 1913, 'n_words': 340}