diff options
author | Marc Alexander <admin@m-a-styles.de> | 2015-09-21 16:28:53 +0200 |
---|---|---|
committer | Marc Alexander <admin@m-a-styles.de> | 2015-10-09 10:15:40 +0200 |
commit | 583f42a2aa5ba8132e9e516b363ba0180fe46289 (patch) | |
tree | 612edf77aeda98158f091549c7ec1df750853b16 /tests | |
parent | cebc064f4c15b9c53210cc3729756b4d7888041b (diff) | |
download | forums-583f42a2aa5ba8132e9e516b363ba0180fe46289.tar forums-583f42a2aa5ba8132e9e516b363ba0180fe46289.tar.gz forums-583f42a2aa5ba8132e9e516b363ba0180fe46289.tar.bz2 forums-583f42a2aa5ba8132e9e516b363ba0180fe46289.tar.xz forums-583f42a2aa5ba8132e9e516b363ba0180fe46289.zip |
[ticket/14168] Add tests for attachment resync class
PHPBB3-14168
Diffstat (limited to 'tests')
-rw-r--r-- | tests/attachment/fixtures/resync.xml | 81 | ||||
-rw-r--r-- | tests/attachment/resync_test.php | 74 |
2 files changed, 155 insertions, 0 deletions
diff --git a/tests/attachment/fixtures/resync.xml b/tests/attachment/fixtures/resync.xml new file mode 100644 index 0000000000..132f62382c --- /dev/null +++ b/tests/attachment/fixtures/resync.xml @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<dataset> + <table name="phpbb_attachments"> + <column>post_msg_id</column> + <column>topic_id</column> + <column>in_message</column> + <column>is_orphan</column> + <column>attach_comment</column> + <row> + <value>1</value> + <value>1</value> + <value>0</value> + <value>0</value> + <value>foo</value> + </row> + <row> + <value>1</value> + <value>1</value> + <value>1</value> + <value>0</value> + <value>foo2</value> + </row> + </table> + <table name="phpbb_posts"> + <column>post_id</column> + <column>post_text</column> + <column>poster_id</column> + <column>post_attachment</column> + <row> + <value>1</value> + <value>foo</value> + <value>1</value> + <value>1</value> + </row> + <row> + <value>2</value> + <value>foo</value> + <value>1</value> + <value>1</value> + </row> + </table> + <table name="phpbb_privmsgs"> + <column>msg_id</column> + <column>message_text</column> + <column>message_attachment</column> + <column>to_address</column> + <column>bcc_address</column> + <row> + <value>1</value> + <value>foo</value> + <value>1</value> + <value>2</value> + <value>2</value> + </row> + <row> + <value>2</value> + <value>foo</value> + <value>1</value> + <value>2</value> + <value>2</value> + </row> + </table> + <table name="phpbb_topics"> + <column>topic_id</column> + <column>forum_id</column> + <column>topic_title</column> + <column>topic_attachment</column> + <row> + <value>1</value> + <value>1</value> + <value>foo</value> + <value>1</value> + </row> + <row> + <value>2</value> + <value>1</value> + <value>bar</value> + <value>1</value> + </row> + </table> +</dataset> diff --git a/tests/attachment/resync_test.php b/tests/attachment/resync_test.php new file mode 100644 index 0000000000..de8a42637e --- /dev/null +++ b/tests/attachment/resync_test.php @@ -0,0 +1,74 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +class phpbb_attachment_resync_test extends \phpbb_database_test_case +{ + /** @var \phpbb\db\driver\driver_interface */ + protected $db; + + /** @var \phpbb\attachment\resync */ + protected $resync; + + public function getDataSet() + { + return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/resync.xml'); + } + + public function setUp() + { + parent::setUp(); + + $this->db = $this->new_dbal(); + $this->resync = new \phpbb\attachment\resync($this->db); + } + + public function data_resync() + { + return array( + array('', array(1), 'post_id', POSTS_TABLE, array('post_attachment' => '1'), array('post_attachment' => '1')), + array('post', array(1), 'post_id', POSTS_TABLE, array('post_attachment' => '1'), array('post_attachment' => '1')), + array('post', array(2), 'post_id', POSTS_TABLE, array('post_attachment' => '1'), array('post_attachment' => '0')), + array('topic', array(1), 'topic_id', TOPICS_TABLE, array('topic_attachment' => '1'), array('topic_attachment' => '1')), + array('topic', array(2), 'topic_id', TOPICS_TABLE, array('topic_attachment' => '1'), array('topic_attachment' => '0')), + array('message', array(1), 'msg_id', PRIVMSGS_TABLE, array('message_attachment' => '1'), array('message_attachment' => '1')), + array('message', array(2), 'msg_id', PRIVMSGS_TABLE, array('message_attachment' => '1'), array('message_attachment' => '0')), + ); + } + + /** + * @dataProvider data_resync + */ + public function test_resync($type, $ids, $sql_id, $exist_table, $exist_data, $resync_data) + { + $sql_prefix = ($type) ?: 'post'; + $sql = 'SELECT ' . $sql_prefix . '_attachment + FROM ' . $exist_table . ' + WHERE ' . $sql_id . ' = ' . $ids[0]; + $result = $this->db->sql_query($sql); + $data = $this->db->sql_fetchrow($result); + $this->db->sql_freeresult($result); + + $this->assertSame($exist_data, $data); + + $this->resync->resync($type, $ids); + + $sql = 'SELECT ' . $sql_prefix . '_attachment + FROM ' . $exist_table . ' + WHERE ' . $sql_id . ' = ' . $ids[0]; + $result = $this->db->sql_query($sql); + $data = $this->db->sql_fetchrow($result); + $this->db->sql_freeresult($result); + + $this->assertSame($resync_data, $data); + } +} |