From fe1ca616017633a243017ad265c4713aca773ea3 Mon Sep 17 00:00:00 2001
From: Marin Jankovski <marin@gitlab.com>
Date: Thu, 24 Apr 2014 13:23:17 +0200
Subject: [PATCH] Make sure that tests pass when aws group is used.

---
 Gemfile                                 |  3 ++-
 Gemfile.lock                            |  4 ++++
 config/initializers/carrierwave.rb      | 12 ++++++++++++
 spec/helpers/application_helper_spec.rb |  4 ++--
 4 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/Gemfile b/Gemfile
index 4ab1ab50eb9..7372d244725 100644
--- a/Gemfile
+++ b/Gemfile
@@ -71,6 +71,7 @@ gem "carrierwave"
 
 # for aws storage
 gem "fog", "~> 1.14", group: :aws
+gem "unf", group: :aws
 
 # Authorization
 gem "six"
@@ -232,4 +233,4 @@ end
 
 group :production do
   gem "gitlab_meta", '6.0'
-end
\ No newline at end of file
+end
diff --git a/Gemfile.lock b/Gemfile.lock
index 155e03e5456..0556b870be5 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -531,6 +531,9 @@ GEM
       execjs (>= 0.3.0)
       json (>= 1.8.0)
     underscore-rails (1.4.4)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.6)
     unicorn (4.6.3)
       kgio (~> 2.6)
       rack
@@ -659,6 +662,7 @@ DEPENDENCIES
   turbolinks
   uglifier
   underscore-rails (~> 1.4.4)
+  unf
   unicorn (~> 4.6.3)
   unicorn-worker-killer
   version_sorter
diff --git a/config/initializers/carrierwave.rb b/config/initializers/carrierwave.rb
index 6875fa74edd..d0065b63e54 100644
--- a/config/initializers/carrierwave.rb
+++ b/config/initializers/carrierwave.rb
@@ -18,4 +18,16 @@ if File.exists?(aws_file)
     config.fog_authenticated_url_expiration = 1 << 29               # optional time (in seconds) that authenticated urls will be valid.
                                                                     # when fog_public is false and provider is AWS or Google, defaults to 600
   end
+
+  # Mocking Fog requests, based on: https://github.com/carrierwaveuploader/carrierwave/wiki/How-to%3A-Test-Fog-based-uploaders
+  if Rails.env.test?
+    Fog.mock!
+    connection = ::Fog::Storage.new(
+        :aws_access_key_id      => AWS_CONFIG['access_key_id'],
+        :aws_secret_access_key  => AWS_CONFIG['secret_access_key'],
+        :provider               => 'AWS',
+        :region                 => AWS_CONFIG['region']
+      )
+    connection.directories.create(:key => AWS_CONFIG['bucket'])
+  end
 end
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 61c561335e5..0376e0aadf0 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -46,7 +46,7 @@ describe ApplicationHelper do
       group = create(:group)
       group.avatar = File.open(avatar_file_path)
       group.save!
-      group_icon(group.path).to_s.should == "/uploads/group/avatar/#{ group.id }/gitlab_logo.png"
+      group_icon(group.path).to_s.should match("/uploads/group/avatar/#{ group.id }/gitlab_logo.png")
     end
 
     it "should give default avatar_icon when no avatar is present" do
@@ -63,7 +63,7 @@ describe ApplicationHelper do
       user = create(:user)
       user.avatar = File.open(avatar_file_path)
       user.save!
-      avatar_icon(user.email).to_s.should == "/uploads/user/avatar/#{ user.id }/gitlab_logo.png"
+      avatar_icon(user.email).to_s.should match("/uploads/user/avatar/#{ user.id }/gitlab_logo.png")
     end
 
     it "should call gravatar_icon when no avatar is present" do
-- 
GitLab