1###
2# Copyright (c) 2005, Daniel DiPaolo
3# Copyright (c) 2014, James McCoy
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions are met:
8#
9#   * Redistributions of source code must retain the above copyright notice,
10#     this list of conditions, and the following disclaimer.
11#   * Redistributions in binary form must reproduce the above copyright notice,
12#     this list of conditions, and the following disclaimer in the
13#     documentation and/or other materials provided with the distribution.
14#   * Neither the name of the author of this software nor the name of
15#     contributors to this software may be used to endorse or promote products
16#     derived from this software without specific prior written consent.
17#
18# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21# ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28# POSSIBILITY OF SUCH DAMAGE.
29###
30
31from supybot.test import *
32
33class AnonymousTestCase(ChannelPluginTestCase):
34    plugins = ('Anonymous',)
35    def testSay(self):
36        self.assertError('anonymous say %s I love you!' % self.channel)
37        origreg = conf.supybot.plugins.Anonymous.requireRegistration()
38        try:
39            conf.supybot.plugins.Anonymous.requireRegistration.setValue(False)
40            m = self.assertNotError('anonymous say %s foo!' % self.channel)
41            self.failUnless(m.args[1] == 'foo!')
42        finally:
43            conf.supybot.plugins.Anonymous.requireRegistration.setValue(origreg)
44
45    def testTell(self):
46        self.assertError('anonymous tell %s I love you!' % self.nick)
47        origreg = conf.supybot.plugins.Anonymous.requireRegistration()
48        origpriv = conf.supybot.plugins.Anonymous.allowPrivateTarget()
49        try:
50            conf.supybot.plugins.Anonymous.requireRegistration.setValue(False)
51            self.assertError('anonymous tell %s foo!' % self.channel)
52            conf.supybot.plugins.Anonymous.allowPrivateTarget.setValue(True)
53            m = self.assertNotError('anonymous tell %s foo!' % self.nick)
54            self.failUnless(m.args[1] == 'foo!')
55        finally:
56            conf.supybot.plugins.Anonymous.requireRegistration.setValue(origreg)
57            conf.supybot.plugins.Anonymous.allowPrivateTarget.setValue(origpriv)
58
59    def testAction(self):
60        m = self.assertError('anonymous do %s loves you!' % self.channel)
61        try:
62            orig = conf.supybot.plugins.Anonymous.requireRegistration()
63            conf.supybot.plugins.Anonymous.requireRegistration.setValue(False)
64            m = self.assertNotError('anonymous do %s loves you!'%self.channel)
65            self.assertEqual(m.args, ircmsgs.action(self.channel,
66                                                    'loves you!').args)
67        finally:
68            conf.supybot.plugins.Anonymous.requireRegistration.setValue(orig)
69
70
71# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
72