193 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			193 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
class RelationshipTest extends ShimmiePHPUnitTestCase
 | 
						|
{
 | 
						|
    public function testSetParent()
 | 
						|
    {
 | 
						|
        $this->log_in_as_user();
 | 
						|
 | 
						|
        $image_id_1 = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
 | 
						|
        $image_id_2 = $this->post_image("tests/bedroom_workshop.jpg", "pbx");
 | 
						|
        $image_id_3 = $this->post_image("tests/favicon.png", "pbx");
 | 
						|
 | 
						|
        $image_1 = Image::by_id($image_id_1);
 | 
						|
        $image_2 = Image::by_id($image_id_2);
 | 
						|
        $image_3 = Image::by_id($image_id_3);
 | 
						|
 | 
						|
        $this->assertNull($image_1->parent_id);
 | 
						|
        $this->assertNull($image_2->parent_id);
 | 
						|
        $this->assertNull($image_3->parent_id);
 | 
						|
        $this->assertFalse($image_1->has_children);
 | 
						|
        $this->assertFalse($image_2->has_children);
 | 
						|
        $this->assertFalse($image_3->has_children);
 | 
						|
 | 
						|
        $this->get_page("post/view/$image_id_2");
 | 
						|
        $this->assert_title("Image $image_id_2: pbx");
 | 
						|
 | 
						|
        $this->markTestIncomplete();
 | 
						|
 | 
						|
        $this->set_field("tag_edit__parent", $image_id_1);
 | 
						|
        $this->click("Set");
 | 
						|
 | 
						|
 | 
						|
        $image_1 = Image::by_id($image_id_1);
 | 
						|
        $image_2 = Image::by_id($image_id_2);
 | 
						|
        $image_3 = Image::by_id($image_id_3);
 | 
						|
 | 
						|
        $this->assertNull($image_1->parent_id);
 | 
						|
        $this->assertEquals($image_id_1,$image_2->parent_id);
 | 
						|
        $this->assertNull($image_3->parent_id);
 | 
						|
        $this->assertTrue($image_1->has_children);
 | 
						|
        $this->assertFalse($image_2->has_children);
 | 
						|
        $this->assertFalse($image_3->has_children);
 | 
						|
 | 
						|
 | 
						|
        // Test changing to a different parent
 | 
						|
 | 
						|
        $this->get_page("post/view/$image_id_2");
 | 
						|
        $this->assert_title("Image $image_id_2: pbx");
 | 
						|
 | 
						|
        $this->markTestIncomplete();
 | 
						|
 | 
						|
        $this->set_field("tag_edit__parent", $image_id_3);
 | 
						|
        $this->click("Set");
 | 
						|
 | 
						|
        $image_1 = Image::by_id($image_id_1);
 | 
						|
        $image_2 = Image::by_id($image_id_2);
 | 
						|
        $image_3 = Image::by_id($image_id_3);
 | 
						|
 | 
						|
        $this->assertNull($image_1->parent_id);
 | 
						|
        $this->assertEquals($image_id_3,$image_2->parent_id);
 | 
						|
        $this->assertNull($image_3->parent_id);
 | 
						|
        $this->assertFalse($image_2->has_children);
 | 
						|
        $this->assertFalse($image_2->has_children);
 | 
						|
        $this->assertTrue($image_3->has_children);
 | 
						|
 | 
						|
 | 
						|
        // Test setting parent to none
 | 
						|
 | 
						|
        $this->get_page("post/view/$image_id_2");
 | 
						|
        $this->assert_title("Image $image_id_2: pbx");
 | 
						|
 | 
						|
        $this->markTestIncomplete();
 | 
						|
 | 
						|
        $this->set_field("tag_edit__parent", "");
 | 
						|
        $this->click("Set");
 | 
						|
 | 
						|
        $image_1 = Image::by_id($image_id_1);
 | 
						|
        $image_2 = Image::by_id($image_id_2);
 | 
						|
        $image_3 = Image::by_id($image_id_3);
 | 
						|
 | 
						|
        $this->assertNull($image_1->parent_id);
 | 
						|
        $this->assertNull($image_2->parent_id);
 | 
						|
        $this->assertNull($image_3->parent_id);
 | 
						|
        $this->assertFalse($image_2->has_children);
 | 
						|
        $this->assertFalse($image_2->has_children);
 | 
						|
        $this->assertFalse($image_3->has_children);
 | 
						|
 | 
						|
 | 
						|
        $this->log_out();
 | 
						|
 | 
						|
        $this->log_in_as_admin();
 | 
						|
        $this->delete_image($image_id_1);
 | 
						|
        $this->delete_image($image_id_2);
 | 
						|
        $this->delete_image($image_id_3);
 | 
						|
        $this->log_out();
 | 
						|
    }
 | 
						|
 | 
						|
    public function testSetParentByTag()
 | 
						|
    {
 | 
						|
        $this->log_in_as_user();
 | 
						|
        $image_id_1 = $this->post_image("tests/pbx_screenshot.jpg", "pbx");
 | 
						|
        $image_id_2 = $this->post_image("tests/bedroom_workshop.jpg", "pbx");
 | 
						|
        $image_id_3 = $this->post_image("tests/favicon.png", "pbx");
 | 
						|
 | 
						|
        $image_1 = Image::by_id($image_id_1);
 | 
						|
        $image_2 = Image::by_id($image_id_2);
 | 
						|
        $image_3 = Image::by_id($image_id_3);
 | 
						|
 | 
						|
        $this->assertNull($image_1->parent_id);
 | 
						|
        $this->assertNull($image_2->parent_id);
 | 
						|
        $this->assertNull($image_3->parent_id);
 | 
						|
        $this->assertFalse($image_1->has_children);
 | 
						|
        $this->assertFalse($image_2->has_children);
 | 
						|
        $this->assertFalse($image_3->has_children);
 | 
						|
 | 
						|
        // Test settings parent:#
 | 
						|
 | 
						|
        $this->get_page("post/view/$image_id_2");
 | 
						|
        $this->assert_title("Image $image_id_2: pbx");
 | 
						|
 | 
						|
        $this->markTestIncomplete();
 | 
						|
 | 
						|
        $this->set_field("tag_edit__tags", "pbx parent:$image_id_1");
 | 
						|
        $this->click("Set");
 | 
						|
 | 
						|
        $this->assert_title("Image $image_id_2: pbx");
 | 
						|
 | 
						|
        $image_1 = Image::by_id($image_id_1);
 | 
						|
        $image_2 = Image::by_id($image_id_2);
 | 
						|
        $image_3 = Image::by_id($image_id_3);
 | 
						|
 | 
						|
        $this->assertNull($image_1->parent_id);
 | 
						|
        $this->assertEquals($image_id_1,$image_2->parent_id);
 | 
						|
        $this->assertNull($image_3->parent_id);
 | 
						|
        $this->assertTrue($image_1->has_children);
 | 
						|
        $this->assertFalse($image_2->has_children);
 | 
						|
        $this->assertFalse($image_3->has_children);
 | 
						|
 | 
						|
        // Test settings child:#
 | 
						|
 | 
						|
        $this->get_page("post/view/$image_id_3");
 | 
						|
        $this->assert_title("Image $image_id_3: pbx");
 | 
						|
 | 
						|
        $this->markTestIncomplete();
 | 
						|
 | 
						|
        $this->set_field("tag_edit__tags", "pbx child:$image_id_1");
 | 
						|
        $this->click("Set");
 | 
						|
 | 
						|
        $this->assert_title("Image $image_id_3: pbx");
 | 
						|
 | 
						|
        $image_1 = Image::by_id($image_id_1);
 | 
						|
        $image_2 = Image::by_id($image_id_2);
 | 
						|
        $image_3 = Image::by_id($image_id_3);
 | 
						|
 | 
						|
        $this->assertEquals($image_id_3,$image_1->parent_id);
 | 
						|
        $this->assertEquals($image_id_1,$image_2->parent_id);
 | 
						|
        $this->assertNull($image_3->parent_id);
 | 
						|
        $this->assertTrue($image_1->has_children);
 | 
						|
        $this->assertFalse($image_2->has_children);
 | 
						|
        $this->assertTrue($image_3->has_children);
 | 
						|
 | 
						|
        // Test settings parent:none
 | 
						|
 | 
						|
        $this->get_page("post/view/$image_id_1");
 | 
						|
        $this->assert_title("Image $image_id_1: pbx");
 | 
						|
 | 
						|
        $this->markTestIncomplete();
 | 
						|
 | 
						|
        $this->set_field("tag_edit__tags", "pbx parent:none");
 | 
						|
        $this->click("Set");
 | 
						|
 | 
						|
        $this->assert_title("Image $image_id_1: pbx");
 | 
						|
 | 
						|
        $image_1 = Image::by_id($image_id_1);
 | 
						|
        $image_2 = Image::by_id($image_id_2);
 | 
						|
        $image_3 = Image::by_id($image_id_3);
 | 
						|
 | 
						|
        $this->assertNull($image_1->parent_id);
 | 
						|
        $this->assertEquals($image_id_1,$image_2->parent_id);
 | 
						|
        $this->assertNull($image_3->parent_id);
 | 
						|
        $this->assertTrue($image_1->has_children);
 | 
						|
        $this->assertFalse($image_2->has_children);
 | 
						|
        $this->assertFalse($image_3->has_children);
 | 
						|
 | 
						|
        $this->log_out();
 | 
						|
 | 
						|
        $this->log_in_as_admin();
 | 
						|
        $this->delete_image($image_id_1);
 | 
						|
        $this->delete_image($image_id_2);
 | 
						|
        $this->delete_image($image_id_3);
 | 
						|
        $this->log_out();
 | 
						|
    }
 | 
						|
}
 |