parent
6111827114
commit
967678ad65
@ -1,41 +0,0 @@ |
|||||||
#-- encoding: UTF-8 |
|
||||||
#-- copyright |
|
||||||
# OpenProject Documents Plugin |
|
||||||
# |
|
||||||
# Former OpenProject Core functionality extracted into a plugin. |
|
||||||
# |
|
||||||
# Copyright (C) 2009-2014 the OpenProject Foundation (OPF) |
|
||||||
# |
|
||||||
# This program is free software; you can redistribute it and/or |
|
||||||
# modify it under the terms of the GNU General Public License version 3. |
|
||||||
# |
|
||||||
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: |
|
||||||
# Copyright (C) 2006-2013 Jean-Philippe Lang |
|
||||||
# Copyright (C) 2010-2013 the ChiliProject Team |
|
||||||
# |
|
||||||
# This program is free software; you can redistribute it and/or |
|
||||||
# modify it under the terms of the GNU General Public License |
|
||||||
# as published by the Free Software Foundation; either version 2 |
|
||||||
# of the License, or (at your option) any later version. |
|
||||||
# |
|
||||||
# This program is distributed in the hope that it will be useful, |
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
# GNU General Public License for more details. |
|
||||||
# |
|
||||||
# You should have received a copy of the GNU General Public License |
|
||||||
# along with this program; if not, write to the Free Software |
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
||||||
# |
|
||||||
# See doc/COPYRIGHT.rdoc for more details. |
|
||||||
#++ |
|
||||||
|
|
||||||
class DocumentObserver < ActiveRecord::Observer |
|
||||||
def after_create(document) |
|
||||||
return unless Setting.notified_events.include?('document_added') |
|
||||||
|
|
||||||
document.recipients.each do |user| |
|
||||||
DocumentsMailer.document_added(user, document).deliver_now |
|
||||||
end |
|
||||||
end |
|
||||||
end |
|
@ -1,60 +0,0 @@ |
|||||||
#-- copyright |
|
||||||
# OpenProject Documents Plugin |
|
||||||
# |
|
||||||
# Former OpenProject Core functionality extracted into a plugin. |
|
||||||
# |
|
||||||
# Copyright (C) 2009-2014 the OpenProject Foundation (OPF) |
|
||||||
# |
|
||||||
# This program is free software; you can redistribute it and/or |
|
||||||
# modify it under the terms of the GNU General Public License version 3. |
|
||||||
# |
|
||||||
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: |
|
||||||
# Copyright (C) 2006-2013 Jean-Philippe Lang |
|
||||||
# Copyright (C) 2010-2013 the ChiliProject Team |
|
||||||
# |
|
||||||
# This program is free software; you can redistribute it and/or |
|
||||||
# modify it under the terms of the GNU General Public License |
|
||||||
# as published by the Free Software Foundation; either version 2 |
|
||||||
# of the License, or (at your option) any later version. |
|
||||||
# |
|
||||||
# This program is distributed in the hope that it will be useful, |
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
# GNU General Public License for more details. |
|
||||||
# |
|
||||||
# You should have received a copy of the GNU General Public License |
|
||||||
# along with this program; if not, write to the Free Software |
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
||||||
# |
|
||||||
# See doc/COPYRIGHT.rdoc for more details. |
|
||||||
#++ |
|
||||||
require File.dirname(__FILE__) + '/../spec_helper' |
|
||||||
|
|
||||||
describe DocumentObserver do |
|
||||||
let(:user) { FactoryGirl.create(:user, firstname: 'Test', lastname: "User", mail: 'test@test.com') } |
|
||||||
let(:project) { FactoryGirl.create(:project, name: "TestProject")} |
|
||||||
|
|
||||||
let(:mail) do |
|
||||||
mock = Object.new |
|
||||||
allow(mock).to receive(:deliver_now) |
|
||||||
mock |
|
||||||
end |
|
||||||
|
|
||||||
it "is triggered, when a document has been created" do |
|
||||||
document = FactoryGirl.build(:document) |
|
||||||
#observers are singletons, so any_instance exactly leaves out the singleton |
|
||||||
expect(DocumentObserver.instance).to receive(:after_create) |
|
||||||
document.save! |
|
||||||
end |
|
||||||
|
|
||||||
it "calls the DocumentsMailer, when a new document has been added" do |
|
||||||
document = FactoryGirl.build(:document) |
|
||||||
# make sure, that we have actually someone to notify |
|
||||||
allow(document).to receive(:recipients).and_return([user]) |
|
||||||
# ... and notifies are actually sent out |
|
||||||
Setting.notified_events = Setting.notified_events << 'document_added' |
|
||||||
expect(DocumentsMailer).to receive(:document_added).and_return(mail) |
|
||||||
|
|
||||||
document.save |
|
||||||
end |
|
||||||
end |
|
Loading…
Reference in new issue