summaryrefslogtreecommitdiff
path: root/test/PhpBB3ToMailmanTest.php
blob: cd3f1cdc39d3d45916fd65534760f45fd168dc03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?php

#
# $Id: PhpBB3MessageTest.php 7051 2010-07-29 13:23:57Z uckelman $
#
# forum-list bridge 
# Copyright (C) 2010 Joel Uckelman
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
#

require_once('PHPUnit/Framework.php');

require_once('Log.php');

require_once(__DIR__ . '/../src/Bridge.php');
require_once(__DIR__ . '/../src/PhpBB3.php');
require_once(__DIR__ . '/../src/PhpBB3ToMailman.php');

class User {
  public $data = array();

  public function __construct($userName, $userEmail) {
    $this->data['username'] = $userName;
    $this->data['user_email'] = $userEmail;
  }
}

class PhpBB3ToMailmanTest extends PHPUnit_Framework_TestCase {

  public function testProcessPost() {
    $this->markTestIncomplete();

    $config = array('upload_path' => '');
    $user = new User('Joel Uckelman', 'uckelman@nomic.net');
    $mode = 'post';
    $data = array(
      'attachment_data' => array(),
      'bbcode_uid' => '3i2cqt66',
      'forum_id' => '3',
      'post_id' => '1',
      'message' => '[b:3i2cqt66]This is a[/b:3i2cqt66] test of [i:3i2cqt66]the BBCode[/i:3i2cqt66] parser. Will [u:3i2cqt66][i:3i2cqt66]it[/i:3i2cqt66][/u:3i2cqt66] parse? Also, throw in some difficult characters: 1 &lt; 2 &lt; 4 &gt; 3.', 
      'topic_first_post_id' => ''
    );
    $post_data = array(
      'forum_name' => 'Test forum',
      'post_subject' => 'This is a test post'
    );

    $_SERVER['SERVER_NAME'] = 'vassalengine.org/forum';
    $_SERVER['SCRIPT_NAME'] = '/var/www/forum/viewtopic.php';

    $bridge = $this->getMock('Bridge');
    $bridge->expects($this->once())
           ->method('getLists')
           ->with($data['forum_id'])
           ->will($this->returnValue(array('messages@vassalengine.org')));
    $bridge->expects($this->once())
           ->method('reserveEditId')
           ->with($data['post_id'])
           ->will($this->returnValue(1));
    $bridge->expects($this->once())
           ->method('registerByEditId')
           ->with(1, $this->anything(), $this->anything())
           ->will($this->returnValue(true));
 
    $phpbb = $this->getMock('PhpBB3');
    $phpbb->expects($this->once())
           ->method('getPostTime')
           ->with($data['post_id'])
           ->will($this->returnValue(1288562162));
  
    $mailer = $this->getMock('Mail');
    $mailer->expects($this->once())
           ->method('send')
           ->with('messages@vassalengine.org',
                  $this->anything(), $this->anything())
           ->will($this->returnValue(null));
 
    $logger = &Log::singleton('null'); 

    $conduit = new PhpBB3ToMailman($bridge, $phpbb, $mailer, $logger);

   
    $conduit->process($config, $user, $mode, $data, $post_data);
  }
}

?>