Skip to content
Extraits de code Groupes Projets
factories.rb 7,48 ko
Newer Older
  • Learn to ignore specific revisions
  • #   Copyright (c) 2010-2011, Diaspora In  This file is
    #   licensed under the Affero General Public License version 3 or late  See
    
    Raphael's avatar
    Raphael a validé
    #   the COPYRIGHT file.
    
    ilya's avatar
    ilya a validé
    #For Guidance
    #http://github.com/thoughtbot/factory_girl
    
    # http://railscasts.com/episodes/158-factories-not-fixtures
    
    
      SecureRandom.hex(3)
    
    FactoryGirl.define do
      factory :profile do
        sequence(:first_name) { |n| "Robert#{n}#{r_str}" }
        sequence(:last_name)  { |n| "Grimm#{n}#{r_str}" }
        bio "I am a cat lover and I love to run"
        gender "robot"
        location "Earth"
        birthday Date.today
      end
    
      factory :profile_with_image_url, :parent => :profile do
        image_url "http://example.com/image.jpg"
        image_url_medium "http://example.com/image_mid.jpg"
        image_url_small "http://example.com/image_small.jpg"
    
    
      factory :person do
        sequence(:diaspora_handle) { |n| "bob-person-#{n}#{r_str}@example.net" }
    
        url AppConfig.pod_uri.to_s
    
        serialized_public_key OpenSSL::PKey::RSA.generate(1024).public_key.export
    
    Jonne Haß's avatar
    Jonne Haß a validé
        after(:build) do |person|
          person.profile = FactoryGirl.build(:profile, :person => person) unless person.profile.first_name.present?
    
    Jonne Haß's avatar
    Jonne Haß a validé
        after(:create) do |person|
    
          person.profile.save
        end
    
        association :person
    
    Jonne Haß's avatar
    Jonne Haß a validé
        after(:build) do |delete|
    
          delete.diaspora_handle = delete.person.diaspora_handle
        end
    
      factory :searchable_person, :parent => :person do
    
    Jonne Haß's avatar
    Jonne Haß a validé
        after(:build) do |person|
          person.profile = FactoryGirl.build(:profile, :person => person, :searchable => true)
    
      factory :like do
        association :author, :factory => :person
        association :target, :factory => :status_message
      end
    
      factory :user do
        getting_started false
        sequence(:username) { |n| "bob#{n}#{r_str}" }
        sequence(:email) { |n| "bob#{n}#{r_str}@pivotallabs.com" }
        password "bluepin7"
        password_confirmation { |u| u.password }
        serialized_private_key  OpenSSL::PKey::RSA.generate(1024).export
    
    Jonne Haß's avatar
    Jonne Haß a validé
        after(:build) do |u|
          u.person = FactoryGirl.build(:person, :profile => FactoryGirl.build(:profile),
    
                                      :owner_id => u.id,
                                      :serialized_public_key => u.encryption_key.public_key.export,
                                      :diaspora_handle => "#{u.username}#{User.diaspora_id_host}")
        end
    
    Jonne Haß's avatar
    Jonne Haß a validé
        after(:create) do |u|
    
          u.person.save
          u.person.profile.save
        end
    
      factory :user_with_aspect, :parent => :user do
    
    Jonne Haß's avatar
    Jonne Haß a validé
        after(:create) { |u|  FactoryGirl.create(:aspect, :user => u) }
    
      factory :aspect do
        name "generic"
    
    Jonne Haß's avatar
    Jonne Haß a validé
        user
    
      factory(:status_message) do
        sequence(:text) { |n| "jimmy's #{n} whales" }
        association :author, :factory => :person
    
    Jonne Haß's avatar
    Jonne Haß a validé
        after(:build) do |sm|
    
          sm.diaspora_handle = sm.author.diaspora_handle
        end
    
      factory(:status_message_with_poll, :parent => :status_message) do
        after(:build) do |sm|
          FactoryGirl.create(:poll, :status_message => sm)
        end
      end
    
    
      factory(:status_message_with_photo, :parent => :status_message) do
    
        sequence(:text) { |n| "There are #{n} ninjas in this photo." }
    
    Jonne Haß's avatar
    Jonne Haß a validé
        after(:build) do |sm|
          FactoryGirl.create(:photo, :author => sm.author, :status_message => sm, :pending => false, :public => sm.public)
    
      factory(:status_message_in_aspect, parent: :status_message) do
        self.public false
        after :build do |sm|
          sm.author = FactoryGirl.create(:user_with_aspect).person
          sm.aspects << sm.author.owner.aspects.first
        end
      end
    
    
      factory(:location) do
        lat 1
        lng 2
      end
    
    
      factory(:poll) do
        sequence(:question) { |n| "What do you think about #{n} ninjas?" }
        after(:build) do |p|
    
          p.poll_answers << FactoryGirl.build(:poll_answer)
          p.poll_answers << FactoryGirl.build(:poll_answer)
    
        end
      end
    
      factory(:poll_answer) do
        sequence(:answer) { |n| "#{n} questionmarks" }
      end
    
    
        sequence(:random_string) {|n| SecureRandom.hex(10) }
    
        association :author, :factory => :person
    
    Jonne Haß's avatar
    Jonne Haß a validé
        after(:build) do |p|
    
          p.unprocessed_image.store! File.open(File.join(File.dirname(__FILE__), 'fixtures', 'button.png'))
          p.update_remote_path
        end
    
      factory(:remote_photo, :parent => :photo) do
        remote_photo_path 'https://photo.com/images/'
        remote_photo_name 'kittehs.jpg'
        association :author,:factory => :person
        processed_image nil
        unprocessed_image nil
      end
    
      factory :reshare do
        association(:root, :public => true, :factory => :status_message)
        association(:author, :factory => :person)
      end
    
    Maxwell Salzberg's avatar
    Maxwell Salzberg a validé
    
    
      factory :invitation do
        service "email"
        identifier "bob.smith@smith.com"
        association :sender, :factory => :user_with_aspect
    
    Jonne Haß's avatar
    Jonne Haß a validé
        after(:build) do |i|
    
          i.aspect = i.sender.aspects.first
        end
    
      factory :invitation_code do
        sequence(:token){|n| "sdfsdsf#{n}"}
        association :user
        count 0
      end
    
    
      factory :service do |service|
        nickname "sirrobertking"
        type "Services::Twitter"
    
        sequence(:uid)           { |token| "00000#{token}" }
        sequence(:access_token)  { |token| "12345#{token}" }
        sequence(:access_secret) { |token| "98765#{token}" }
      end
    
        sequence(:uid) { |id| "a#{id}"}
        sequence(:name) { |num| "Rob Fergus the #{num.ordinalize}" }
        association :service
    
      factory(:comment) do
        sequence(:text) {|n| "#{n} cats"}
        association(:author, :factory => :person)
        association(:post, :factory => :status_message)
      end
    
      factory(:notification) do
        association :recipient, :factory => :user
        association :target, :factory => :comment
        type 'Notifications::AlsoCommented'
    
    zhitomirskiyi's avatar
    zhitomirskiyi a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        after(:build) do |note|
          note.actors << FactoryGirl.build(:person)
    
      factory(:tag, :class => ActsAsTaggableOn::Tag) do
        name "partytimeexcellent"
      end
    
    Ilya Zhitomirskiy's avatar
    Ilya Zhitomirskiy a validé
    
    
      factory(:o_embed_cache) do
        url "http://youtube.com/kittens"
    
      factory(:open_graph_cache) do
        url "http://example.com/articles/123"
        image "http://example.com/images/123.jpg"
        title "Some article"
        ob_type "article"
        description "This is the article lead"
      end
    
    
        association(:tag, :factory => :tag)
        association(:user, :factory => :user)
      end
    
    Ilya Zhitomirskiy's avatar
    Ilya Zhitomirskiy a validé
    
    
      factory(:contact) do
        association(:person, :factory => :person)
        association(:user, :factory => :user)
      end
    
    Ilya Zhitomirskiy's avatar
    Ilya Zhitomirskiy a validé
    
    
      factory(:mention) do
        association(:person, :factory => :person)
        association(:post, :factory => :status_message)
      end
    
      factory(:conversation) do
        association(:author, factory: :person)
        sequence(:subject) { |n| "conversation ##{n}" }
    
        after(:build) do |c|
          c.participants << c.author
        end
      end
    
      factory(:conversation_with_message, parent: :conversation) do
        after(:build) do |c|
          msg = FactoryGirl.build(:message)
          msg.conversation_id = c.id
          c.participants << msg.author
          msg.save
        end
      end
    
      factory(:message) do
        association(:author, factory: :person)
        sequence(:text) { |n| "message text ##{n}" }
      end
    
      factory(:message_with_conversation, parent: :message) do
        after(:build) do |msg|
          c = FactoryGirl.build(:conversation)
          c.participants << msg.author
          msg.conversation_id = c.id
        end
      end
    
    
      #templates
      factory(:status_with_photo_backdrop, :parent => :status_message_with_photo)
    
      factory(:photo_backdrop, :parent => :status_message_with_photo) do
        text ""
      end
    
      factory(:note, :parent => :status_message) do
    
        text SecureRandom.hex(1000)
    
      end
    
      factory(:status, :parent => :status_message)