subscriptionManager.php
6.65 KB
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<?php
include("../../config/dmsDefaults.php");
if (checkSession()) {
require_once("$default->owl_fs_root/lib/subscriptions/SubscriptionManager.inc");
$oSubscriptionManager = new SubscriptionManager();
echo "<b>Testing folder subscriptions</b><br>";
$iFolderID = 1;
$iUserID = 1;
echo "<ul><li>Testing folder subscription creation with folderID=$iFolderID, userID=$iUserID :";
if ($oSubscriptionManager->createFolderSubscription($iFolderID, $iUserID)) {
echo "Passed creating folder subscription</li>";
echo "<li>Testing folder subscription removal with folderID=$iFolderID, userID=$iUserID :";
if ($oSubscriptionManager->removeFolderSubscription($iFolderID, $iUserID)) {
echo "Passed removing folder subscription</li>";
} else {
echo "Failed removing folder subscription(" . $_SESSION["errorMessage"] . ")</li>";
}
} else {
echo "Failed creating folder subscription(" . $_SESSION["errorMessage"] . ")</li><li>Skipped folder subscription removal</li>";
}
echo "</ul><b>Testing document subscriptions</b><br>";
$iDocumentID = 2;
$iUserID = 1;
echo "<ul><li>Testing document subscription creation with documentID=$iDocumentID, userID=$iUserID :";
if ($oSubscriptionManager->createDocumentSubscription($iDocumentID, $iUserID)) {
echo "Passed creating document subscription</li>";
echo "<li>Testing document subscription removal with documentID=$iDocumentID, userID=$iUserID :";
if ($oSubscriptionManager->removeDocumentSubscription($iDocumentID, $iUserID)) {
echo "Passed removing document subscription</li>";
} else {
echo "Failed removing document subscription(" . $_SESSION["errorMessage"] . ")</li>";
}
} else {
echo "Failed creating document subscription(" . $_SESSION["errorMessage"] . ")</li><li>Skipped document subscription removal</li></ul>";
}
echo "</ul><b>Testing subscription retrieval</b><br>";
// first create some subscriptions
$iUserID = 10;
echo "<ul><li>Creating folder subscriptions<ul>";
for ($i = 1; $i<=5; $i++) {
if ($oSubscriptionManager->createFolderSubscription($i, $iUserID)) {
echo "<li>created folder subscription folderID=$i for userID=$iUserID</li>";
} else {
echo "<li>folder subscription creation failed(" . $_SESSION["errorMessage"] . "): folderID=$i for userID=$iUserID</li>";
}
}
echo "</li></ul>";
echo "<li>Creating document subscriptions<ul>";
for ($i = 5; $i>0; $i--) {
if ($oSubscriptionManager->createDocumentSubscription($i, $iUserID)) {
echo "<li>created document subscription documentID=$i for userID=$iUserID</li>";
} else {
echo "<li>document subscription creation failed(" . $_SESSION["errorMessage"] . "): documentID=$i for userID=$iUserID</li>";
}
}
echo "</li></ul>";
// now try to retrieve them
echo "<li>folder subscriptions for userID=$iUserID:";
$aFolders = $oSubscriptionManager->retrieveFolderSubscriptions($iUserID);
echo "<pre>" . arrayToString($aFolders) . "</pre></li>";
echo "<li>document subscriptions for userID=$iUserID:";
$aDocuments = $oSubscriptionManager->retrieveDocumentSubscriptions($iUserID);
echo "<pre>" . arrayToString($aDocuments) . "</pre></li>";
// now try retrieving both
echo "<li>all subscriptions for userID=$iUserID:";
$oResults = $oSubscriptionManager->retrieveSubscriptions($iUserID);
echo "<pre>" . arrayToString($oResults) . "</pre></li>";
echo "</ul>";
// test subscribers retrieval methods
echo "<b>Testing subscriber retrieval</b><br>";
// add some subscriptions
$iDocumentID = 4;
$iFolderID = 20;
for ($i = 5; $i>0; $i--) {
if ($oSubscriptionManager->createFolderSubscription($iFolderID, $i)) {
echo "<li>created folder subscription folderID=$iFolderID for userID=$i</li>";
} else {
echo "<li>folder creation failed(" . $_SESSION["errorMessage"] . "): folderID=$iFolderID for userID=$i</li>";
}
if ($oSubscriptionManager->createDocumentSubscription($iDocumentID, $i)) {
echo "<li>created document subscription documentID=$iDocumentID for userID=$i</li>";
} else {
echo "<li>document creation failed(" . $_SESSION["errorMessage"] . "): documentID=$iDocumentID for userID=$i</li>";
}
}
$aFolderSubscribers = $oSubscriptionManager->retrieveFolderSubscribers($iFolderID);
$aDocumentSubscribers = $oSubscriptionManager->retrieveDocumentSubscribers($iDocumentID);
echo "Subscribers for folderID=$iFolderID:";
echo "<pre>" . arrayToString($aFolderSubscribers) . "</pre>";
echo "Subscribers for documentID=$iDocumentID:";
echo "<pre>" . arrayToString($aDocumentSubscribers) . "</pre>";
echo "<pre>";
echo "<b>Testing subscription firing</b>";
// test subscription firing
require_once("../../phpSniff/phpTimer.class.php");
$timer = new phpTimer();
$timer->start('subscriptionFiring');
$timer->start('onAddFolder');
$oSubscriptionManager->onAddFolder($iFolderID, "newFolder-onAddFolder");
$timer->stop('onAddFolder');
echo "<ul><li>onAddFolder: " . $timer->get_current('onAddFolder') . "</li>";
$timer->start('onRemoveFolder');
$oSubscriptionManager->onRemoveFolder($iFolderID, "removeFolder");
$timer->stop('onRemoveFolder');
echo "<li>onRemoveFolder: " . $timer->get_current('onRemoveFolder') . "</li>";
$timer->start('onAddDocument');
$oSubscriptionManager->onAddDocument($iFolderID, "addDocumentName");
$timer->stop('onAddDocument');
echo "<li>onAddDocument: " . $timer->get_current('onAddDocument') . "</li>";
$timer->start('onRemoveDocument');
$oSubscriptionManager->onRemoveDocument($iFolderID, "removeDocumentName");
$timer->stop('onRemoveDocument');
echo "<li>onRemoveDocument: " . $timer->get_current('onRemoveDocument') . "</li>";
$timer->start('onModifyDocument');
$oSubscriptionManager->onModifyDocument($iDocumentID);
$timer->stop('onModifyDocument');
echo "<li>onModifyDocument: " . $timer->get_current('onModifyDocument') . "</li>";
$timer->stop('subscriptionFiring');
echo "</ul>all subscription firing: " . $timer->get_current('subscriptionFiring');
echo "</pre>";
// cleanup silently
for ($i = 1; $i<=5; $i++) {
$oSubscriptionManager->removeFolderSubscription($i, $iUserID);
$oSubscriptionManager->removeDocumentSubscription($i, $iUserID);
$oSubscriptionManager->removeFolderSubscription($iFolderID, $i);
$oSubscriptionManager->removeDocumentSubscription($iDocumentID, $i);
}
}
?>