OpenPNE Issue Tracking System: チケット
http://redmine.openpne.jp/
http://redmine.openpne.jp/favicon.ico
2016-05-12T07:10:25Z
OpenPNE Issue Tracking System
Redmine
OpenPNE 3 - Bug(バグ) #3939 (Won't fix(対応せず)): セットアップ手順にexif拡張モジュールが必要であることが記載されていない
http://redmine.openpne.jp/issues/3939
2016-05-12T07:10:25Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p><a class="issue tracker-1 status-13 priority-4 priority-default closed" title="Bug(バグ): スマートフォンで画像をアップロードすると画像が横向きになってしまう場合がある (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/3560">#3560</a> の修正以降、JPEG 画像のアップロード時に <code>exif_read_data</code> 関数 (exif 拡張に含まれる) が使われるようになったが、セットアップ手順が記載されている <a class="source" href="http://redmine.openpne.jp/projects/op3/repository/revisions/43190aa1/entry/doc/ja/OpenPNE3_Setup_Guide.txt">source:doc/ja/OpenPNE3_Setup_Guide.txt@43190aa1</a> には exif 拡張が必要であることが書かれていない。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>下記の行を <code>doc/ja/OpenPNE3_Setup_Guide.txt</code> に追記する (<code>doc/en/OpenPNE3_Setup_Guide.txt</code> にも対応する訳文を追加)</p>
<pre>
* PHP の exif 拡張モジュールを使用可能
</pre>
OpenPNE 3 - Bug(バグ) #3873 (Won't fix(対応せず)): opPluginDownloaderクラスのファイル名がopPearDownloader.class.p...
http://redmine.openpne.jp/issues/3873
2015-12-09T06:19:51Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>opPluginDownloader クラスが記述されているファイルが <code>lib/plugin/opPearDownloader.class.php</code> にあり、クラス名とファイル名が一致していない状態になっている。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>ファイル名を <code>opPluginDownloader.class.php</code> に変更する</p>
OpenPNE 3 - Bug(バグ) #3852 (Won't fix(対応せず)): 機能テスト実行時にopBrowserによる各リクエスト間でMemberConfigのキャッシュが意図せず...
http://redmine.openpne.jp/issues/3852
2015-11-05T11:30:07Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>MemberConfigTable クラスには MemberConfig をキャッシュするための <code>MemberConfigTable::$results</code> が用意されおり、多くのコードはこのキャッシュがリクエストごとに初期化される前提で実装されているが、機能テスト時には <code>MemberConfigTable::$results</code> のキャッシュがリクエストを跨いで引き継がれてしまうため、テスト時のみ発生する意図しない動作の原因となっている。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>MemberConfigTable クラスには MemberConfig をキャッシュするための <code>MemberConfigTable::$results</code> が用意されているが、通常のブラウザからのアクセスによって OpenPNE が動作する場合はリクエスト毎にこのキャッシュは破棄される。<br />しかし機能テストで使用する opBrowser では、リクエストごとに sfContext の初期化は行うものの静的変数の初期化は行われないため MemberConfigTable のインスタンス(<code>Doctrine_Core::getTable()</code> によって生成されるシングルトン)は残ったままとなり、<code>MemberConfigTable::$results</code> も初期化されない。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>opBrowser がリクエストを実行する度(sfContext を生成するタイミング)に <code>MemberConfigTable::$results</code> の中身を空にする</p>
OpenPNE 3 - Bug(バグ) #3756 (Won't fix(対応せず)): 画像付きのOAuthアプリケーションを削除してもDBから画像が削除されない
http://redmine.openpne.jp/issues/3756
2015-01-06T07:37:16Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="再現手順"></a>
<h3 >再現手順<a href="#再現手順" class="wiki-anchor">¶</a></h3>
<p>事前に OpenPNE に opWebAPIPlugin をインストールする必要があります。</p>
<ol>
<li>管理画面の SNS 設定 (/pc_backend.php/sns/config?category=general) から「外部サービスとの接続設定の使用設定」を「使用する」に変更</li>
<li>「連携済みアプリケーション一覧」(/pc_backend.php/connection/new) を開く
<ul>
<li>このページにアクセスするには直接 URL を入力する必要があります</li>
</ul>
</li>
<li>説明文等を入力し、適当な画像を選択して登録する</li>
<li>登録したアプリケーションが表示される</li>
<li>「連携済みアプリケーション一覧」(/pc_backend.php/connection) を開き、登録したアプリケーションを削除する</li>
<li>アップロード画像リスト (/pc_backend.php/monitoring) を開くと削除したアプリケーションの画像が残ったままとなっている</li>
</ol>
<a name="原因"></a>
<h3 >原因<a href="#原因" class="wiki-anchor">¶</a></h3>
<p>親チケット <a class="issue tracker-1 status-13 priority-4 priority-default closed parent" title="Bug(バグ): fileを参照するテーブル(activity_imageなど)のレコード削除時に対応するfileレコードが削除されない (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/3738">#3738</a> を参照。</p>
OpenPNE 3 - Bug(バグ) #3752 (Won't fix(対応せず)): アクティビティを削除しても添付された画像がDBから削除されない
http://redmine.openpne.jp/issues/3752
2015-01-05T05:39:16Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="現象"></a>
<h3 >現象<a href="#現象" class="wiki-anchor">¶</a></h3>
<p>opTimelinePlugin 等のプラグインによって投稿された画像付きのアクティビティを削除しても、添付されている画像は削除されずに DB に残ってしまう。</p>
<a name="再現手順"></a>
<h3 >再現手順<a href="#再現手順" class="wiki-anchor">¶</a></h3>
<p>標準のアクティビティ関係のガジェットには画像投稿機能は備わっていないため、ここでは例として opTimelinePlugin を使用する。</p>
<ol>
<li>opTimelinePlugin から画像付きのアクティビティを投稿する</li>
<li>タイムラインに表示された画像付きのアクティビティを削除する
<ul>
<li>または、標準の「SNSメンバーのアクティビティ」ガジェットから画像付きのアクティビティを削除する</li>
</ul>
</li>
<li>管理画面のアップロード画像リスト (/pc_backend.php/monitoring) に、アクティビティに添付されていた画像が表示されたままとなっている</li>
</ol>
<a name="原因"></a>
<h3 >原因<a href="#原因" class="wiki-anchor">¶</a></h3>
<p>親チケット <a class="issue tracker-1 status-13 priority-4 priority-default closed parent" title="Bug(バグ): fileを参照するテーブル(activity_imageなど)のレコード削除時に対応するfileレコードが削除されない (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/3738">#3738</a> を参照。</p>
OpenPNE 3 - Bug(バグ) #3453 (Won't fix(対応せず)): 管理画面で「Web 全体への年齢公開許可設定」を「メンバーの設定を許可しない」に設定しても新規登録時には...
http://redmine.openpne.jp/issues/3453
2013-10-17T07:41:26Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>管理画面で「Web 全体への年齢公開許可設定」を「メンバーの設定を許可しない」に設定している状態であっても、新規登録時のプロフィール入力画面では年齢の公開範囲に「Web全体に公開」の選択肢が表示され選択できてしまう。</p>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>管理画面の「Web 全体への年齢公開許可設定」で設定された値は、<code>MemberConfigPublicFlagForm::__construct()</code> で使用されている。<br />ここでは「Web 全体への年齢公開許可設定」が「メンバーの設定を許可しない」にセットされていた場合、「年齢の公開範囲」の選択肢から「Web 全体に公開」を除去している。</p>
<p><a class="source" href="http://redmine.openpne.jp/projects/op3/repository/revisions/20d13f4/entry/lib/form/MemberConfigForm/MemberConfigPublicFlagForm.class.php#L31">source:lib/form/MemberConfigForm/MemberConfigPublicFlagForm.class.php@20d13f4#L31</a>:<br /><pre><code class="php syntaxhl"><span class="CodeRay"> <span class="keyword">if</span> (!opConfig::get(<span class="string"><span class="delimiter">'</span><span class="content">is_allow_web_public_flag_age</span><span class="delimiter">'</span></span>))
{
<span class="local-variable">$widget</span> = <span class="local-variable">$this</span>->widgetSchema[<span class="string"><span class="delimiter">'</span><span class="content">age_public_flag</span><span class="delimiter">'</span></span>];
<span class="local-variable">$choices</span> = <span class="local-variable">$widget</span>->getOption(<span class="string"><span class="delimiter">'</span><span class="content">choices</span><span class="delimiter">'</span></span>);
<span class="predefined">unset</span>(<span class="local-variable">$choices</span>[<span class="integer">4</span>]);
<span class="local-variable">$widget</span>->setOption(<span class="string"><span class="delimiter">'</span><span class="content">choices</span><span class="delimiter">'</span></span>, <span class="local-variable">$choices</span>);
<span class="local-variable">$this</span>->validatorSchema[<span class="string"><span class="delimiter">'</span><span class="content">age_public_flag</span><span class="delimiter">'</span></span>]->setOption(<span class="string"><span class="delimiter">'</span><span class="content">choices</span><span class="delimiter">'</span></span>, <span class="predefined">array_keys</span>(<span class="local-variable">$choices</span>));
}
</span></code></pre></p>
<p>しかし、 <strong>新規登録時</strong> のフォームでは MemberConfigPublicFlagForm などの MemberConfigForm 派生クラスは使用されず MemberConfigForm のインスタンスが直接使用されるため、<code>MemberConfigPublicFlagForm::__construct()</code> が呼ばれることはない。<br />そのため、「Web 全体への年齢公開許可設定」の設定値を考慮することなく <code>MemberConfigForm::generateConfigWidgets()</code> によってウィジェットが追加される。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>「Web 全体に公開」の選択肢の除去を <code>MemberConfigForm::setMemberConfigSettings()</code> メソッドに移動する。<br />このメソッドは、新規登録画面 (MemberConfigForm インスタンスが使われる) および設定変更画面 (MemberConfigForm 派生クラスのインスタンスが使われる) で共通して使用されるため、これらの画面による選択肢の差異が生じなくなる。</p>
OpenPNE 3 - Bug(バグ) #3447 (Won't fix(対応せず)): zlib 拡張の入っていない環境で opDoctrineRecordTest.php のテストが実行できない
http://redmine.openpne.jp/issues/3447
2013-10-09T08:50:41Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p><a class="issue tracker-1 status-13 priority-4 priority-default closed" title="Bug(バグ): 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/3134">#3134</a> のテストのために追加された opDoctrineRecordTest.php には gzip タイプのカラムの値を破壊しないか確認するためのテストが含まれているが、このテストは zlib 拡張が有効な環境でないと実行できない。<br /><a class="source" href="http://redmine.openpne.jp/projects/op3/repository/revisions/b9a08942/entry/doc/ja/OpenPNE3_Setup_Guide.txt">source:doc/ja/OpenPNE3_Setup_Guide.txt@b9a08942</a> には OpenPNE の動作に最低限必須とされている拡張に zlib 拡張が含まれていないため、この拡張が有効でない環境でも gzip 関連のテストをスキップして動作するようにすべきである。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>opDoctrineRecordTest 実行時に <code>gzcompress</code> の使用可否をチェックし、それに応じて gzip タイプのカラムに対するテストを行うか否かを分岐するように修正する。</p>
OpenPNE 3 - Bug(バグ) #3445 (Won't fix(対応せず)): #927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避
http://redmine.openpne.jp/issues/3445
2013-10-09T06:49:57Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>Doctrine_Record::free() メソッドには <a class="external" href="https://gist.github.com/upsilon/6896385">https://gist.github.com/upsilon/6896385</a> のような Doctrine のバグと思わしき現象が存在している。<br /><a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Enhancement(機能追加・改善): will memory over to be if all members join to community when has many members to the SNS. (SNSのメン... (Fixed(完了))" href="http://redmine.openpne.jp/issues/927">#927</a> でのメモリリーク改善のために行った <a class="changeset" title="improved performance while join member to community (fixes #927)" href="http://redmine.openpne.jp/projects/op3/repository/revisions/d6956cde880be65aefc802e01b070bb9d054145f">d6956cde880be65aefc802e01b070bb9d054145f</a> の修正は CommunityTableTest.php などのテストコードでこの現象を引き起こしており、例えば下記のようなコードを実行するとエラーが発生する。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"><span class="local-variable">$communityMember1</span> = <span class="constant">Doctrine_Core</span>::getTable(<span class="string"><span class="delimiter">'</span><span class="content">CommunityMember</span><span class="delimiter">'</span></span>)
->findOneByCommunityIdAndMemberId(<span class="integer">1</span>, <span class="integer">1</span>);
<span class="constant">Doctrine_Core</span>::getTable(<span class="string"><span class="delimiter">'</span><span class="content">CommunityMember</span><span class="delimiter">'</span></span>)->isMember(<span class="integer">1</span>, <span class="integer">1</span>);
<span class="predefined">print</span> <span class="local-variable">$communityMember1</span>->community_id; <span class="comment">// エラー</span>
</span></code></pre>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>この問題を根本的に解決するためには Doctrine 自体に手を加える必要があるため、ここでは不具合の回避のための修正を行う。具体的には <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Enhancement(機能追加・改善): will memory over to be if all members join to community when has many members to the SNS. (SNSのメン... (Fixed(完了))" href="http://redmine.openpne.jp/issues/927">#927</a> で行ったメモリリーク改善の効果を落とさないように CommunityMember オブジェクトに対する free() メソッドの呼び出しを最小限に抑えるための修正を施す。</p>
OpenPNE 3 - Bug(バグ) #3443 (Won't fix(対応せず)): MemberConfigFormTest, MemberRelationshipTableTest がs...
http://redmine.openpne.jp/issues/3443
2013-10-08T08:02:07Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>MemberConfigFormTest, MemberRelationshipTableTest は、それぞれメールアドレスの変更やフレンド申請のテスト時に sendmail コマンドを実行しようとする。<br />これではテストの度に <code>example@docomo.ne.jp</code> や <code>sns4@example.com</code> へのメール送信が実際に行われてしまうほか、メール送信が可能な環境でないとテストが実行できない状態となってしまう。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>テスト実行前に Zend_Mail が使用する Transport クラスをモックに差し替えるコードを追加する</p>
OpenPNE 3 - Bug(バグ) #3431 (Won't fix(対応せず)): 機能テストに存在する雛形のままのテストコードを削除する
http://redmine.openpne.jp/issues/3431
2013-10-08T03:15:30Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>OpenPNE に同梱されている機能テストの一部は symfony が提供する雛形のコードのまま手が加えられておらず、中には symfony 1.4 と互換性のないメソッドを使用しているテストも含まれている。<br />これらのテストコードは実装に合わせて修正されない限り自動テストの妨げとなるため削除を行う。</p>
OpenPNE 3 - Bug(バグ) #3427 (Won't fix(対応せず)): snsActionsTest.php でsfTestFunctionalクラスに存在しないisStatu...
http://redmine.openpne.jp/issues/3427
2013-10-07T07:59:45Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>snsActionsTest.php には、下記のように $browser (sfTestFunctional のインスタンス) の isStatusCode メソッドを呼び出そうとしている箇所があるが、isStatusCode メソッドは opTestFunctional クラスで追加されたもので sfTestFunctional には存在しない。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"><span class="local-variable">$browser</span>
->info(<span class="string"><span class="delimiter">'</span><span class="content">0. Login</span><span class="delimiter">'</span></span>)
->get(<span class="string"><span class="delimiter">'</span><span class="content">/default/login</span><span class="delimiter">'</span></span>)
->click(<span class="string"><span class="delimiter">'</span><span class="content">ログイン</span><span class="delimiter">'</span></span>, <span class="predefined">array</span>(<span class="string"><span class="delimiter">'</span><span class="content">admin_user</span><span class="delimiter">'</span></span> => <span class="predefined">array</span>(
<span class="string"><span class="delimiter">'</span><span class="content">username</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">admin</span><span class="delimiter">'</span></span>,
<span class="string"><span class="delimiter">'</span><span class="content">password</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">password</span><span class="delimiter">'</span></span>,
)))
->isStatusCode(<span class="integer">302</span>)
</span></code></pre>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>sfTestFunctional クラスの代わりに opTestFunctional を使用するよう修正する</p>
OpenPNE 3 - Bug(バグ) #3425 (Won't fix(対応せず)): pc_backendの機能テスト designActionsTest.php の実行に失敗する
http://redmine.openpne.jp/issues/3425
2013-10-07T07:12:38Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p><a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/test/functional/pc_backend/designActionsTest.php">source:test/functional/pc_backend/designActionsTest.php</a> を実行すると下記のエラーが発生し異常終了する。</p>
<pre>
PHP Fatal error: Class 'ProjectConfiguration' not found in /home/upsilon/git/openpne3/master/test/bootstrap/database.php on line 10
Fatal error: Class 'ProjectConfiguration' not found in /home/upsilon/git/openpne3/master/test/bootstrap/database.php on line 10
</pre>
<a name="Causes-原因"></a>
<h3 >Causes (原因)<a href="#Causes-原因" class="wiki-anchor">¶</a></h3>
<p>designActionsTest.php 内の記述は次のようになっている。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"><span class="inline-delimiter"><?php</span>
<span class="predefined">include</span>(<span class="predefined">dirname</span>(<span class="predefined-constant">__FILE__</span>).<span class="string"><span class="delimiter">'</span><span class="content">/../../bootstrap/database.php</span><span class="delimiter">'</span></span>);
<span class="predefined">include</span>(<span class="predefined">dirname</span>(<span class="predefined-constant">__FILE__</span>).<span class="string"><span class="delimiter">'</span><span class="content">/../../bootstrap/functional.php</span><span class="delimiter">'</span></span>);
<span class="local-variable">$browser</span> = <span class="keyword">new</span> opTestFunctional(<span class="keyword">new</span> opBrowser(), <span class="keyword">new</span> lime_test(<span class="predefined-constant">null</span>, <span class="keyword">new</span> lime_output_color()));
</span></code></pre>
<p>functional.php よりも先に database.php をロードしたために sfAutoload が初期化される前に ProjectConfiguration クラスを呼び出そうとしてエラーとなっている。また、functional.php 内で database.php がロードされるためそもそも database.php のロードは不要である。</p>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>designActionsTest.php から database.php を include する処理を削除する</p>
OpenPNE 3 - Bug(バグ) #3424 (Won't fix(対応せず)): opI18N::generateApplicationMessages() から呼ばれる sfMessa...
http://redmine.openpne.jp/issues/3424
2013-10-07T06:57:25Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>opI18N::generateApplicationMessages() 内の下記コードで sfMessageSource::factory() の第 2 引数に array が渡されているが、sfMessageSource_File::__construct() にて引数をファイル名として string 型にキャストするため E_NOTICE レベルのエラーが発生する。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"> <span class="local-variable">$messageSource</span> = sfMessageSource::factory(<span class="string"><span class="delimiter">'</span><span class="content">OpenPNE</span><span class="delimiter">'</span></span>, <span class="predefined">array</span>());
<span class="local-variable">$data</span> = <span class="local-variable">$messageSource</span>->loadData(<span class="local-variable">$file</span>);
</span></code></pre>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>sfMessageSource::factory() の第 2 引数は省略可能であるため array() の記述を削除する</p>
OpenPNE 3 - Bug(バグ) #3423 (Won't fix(対応せず)): OpenPNE 本体のテストコードに opCommunityTopicPlugin 依存のテストが含まれている
http://redmine.openpne.jp/issues/3423
2013-10-07T02:25:08Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="Overview-現象"></a>
<h3 >Overview (現象)<a href="#Overview-現象" class="wiki-anchor">¶</a></h3>
<p>test/functional/pc_frontend/communityActionsTest.php の下記テストコードは opCommunityTopicPlugin が存在しない状態では動作せず、LogicException が発生する。</p>
<pre><code class="php syntaxhl"><span class="CodeRay"> ->info(<span class="string"><span class="delimiter">'</span><span class="content">/config/communityTopicNotificationMail/1 - CSRF</span><span class="delimiter">'</span></span>)
->post(<span class="string"><span class="delimiter">'</span><span class="content">/config/communityTopicNotificationMail/1</span><span class="delimiter">'</span></span>, <span class="predefined">array</span>(<span class="string"><span class="delimiter">'</span><span class="content">topic_notify</span><span class="delimiter">'</span></span> => <span class="predefined">array</span>()))
->followRedirect()
->checkCSRF()
</span></code></pre>
<a name="Way-to-fix-修正内容"></a>
<h3 >Way to fix (修正内容)<a href="#Way-to-fix-修正内容" class="wiki-anchor">¶</a></h3>
<p>該当部分を communityActionsTest.php から削除する</p>
OpenPNE 3 - Bug(バグ) #3404 (Won't fix(対応せず)): テストデータのカテゴライズ機能がfunctionalテストで正しく動作していない
http://redmine.openpne.jp/issues/3404
2013-09-20T05:55:06Z
Youichi Kimura
kim.upsilon@bucyou.net
<a name="現象"></a>
<h3 >現象<a href="#現象" class="wiki-anchor">¶</a></h3>
<p><a class="changeset" title="added ability to categorize test data (refs #1527)" href="http://redmine.openpne.jp/projects/op3/repository/revisions/9f48bdd61a5c5667e6a573811876e949aff9015d">9f48bdd61a5c5667e6a573811876e949aff9015d</a> によって追加されたテストデータのカテゴライズ機能で、ユニットテストのコード内にて <code>$fixture</code> に 'common' や 'fix_wrong_categorized_community' などを指定することにより使用する fixture を選択できるようになったが、このコミットはfunctionalテスト向けの修正が抜けている。<br />そのため、functionalテスト実行時にはカテゴライズを無視して全てのテストデータがロードされるためデータの重複などによりエラーとなる。</p>
<a name="原因"></a>
<h3 >原因<a href="#原因" class="wiki-anchor">¶</a></h3>
<p>テストデータのカテゴライズは <a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/test/bootstrap/database.php">source:test/bootstrap/database.php</a> にて <code>sfDoctrineBuildTask</code> の <code>and-load</code> に渡される fixture のパスを変えることで実現しているが、functional テストでは <a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/test/bootstrap/functional.php">source:test/bootstrap/functional.php</a> を使用するため従来通り <code>test/fixtures/</code> 以下の全てのテストデータをロードしてしまう。</p>
<a name="修正内容"></a>
<h3 >修正内容<a href="#修正内容" class="wiki-anchor">¶</a></h3>
<p><a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/test/bootstrap/functional.php">source:test/bootstrap/functional.php</a> 内のデータロード処理に <a class="source" href="http://redmine.openpne.jp/projects/op3/repository/entry/test/bootstrap/database.php">source:test/bootstrap/database.php</a> を使用するように修正する。</p>