1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Contentstack \Tests \Utils ;
6+
7+ require_once __DIR__ . '/Helpers/Utility.php ' ;
8+ require_once __DIR__ . '/Mock/EmbedObjectMock.php ' ;
9+
10+ use Contentstack \Utils \Utils ;
11+ use Contentstack \Utils \Enum \EmbedItemType ;
12+ use Contentstack \Utils \Enum \StyleType ;
13+ use Contentstack \Utils \Model \Metadata ;
14+ use Contentstack \Utils \Model \Option ;
15+ use PHPUnit \Framework \TestCase ;
16+ class DefaultOptionTest extends TestCase
17+ {
18+ public static $ defaultRender ;
19+ public static $ embeddedEntry ;
20+ public static $ embeddedContentType ;
21+ public static $ embeddedAsset ;
22+ public static $ text = "Text To set Link " ;
23+
24+
25+ public function getMetadata ($ itemType , $ styleType , $ linkText = null )
26+ {
27+ $ html = "<test type= {$ itemType } sys-style-type= {$ styleType }> {$ linkText }</test> " ;
28+ $ element = Utility::getElement ($ html , '//test ' )[0 ];
29+ return new Metadata ($ element );
30+ }
31+
32+ public function setUp (): void
33+ {
34+ DefaultOptionTest::$ defaultRender = new Option (EmbedObjectMock::embeddedModel ('' ));
35+ DefaultOptionTest::$ embeddedEntry = EmbedObjectMock::embeddedEntryModel ();
36+ DefaultOptionTest::$ embeddedContentType = EmbedObjectMock::embeddedContentTypeUidModel ();
37+ DefaultOptionTest::$ embeddedAsset = EmbedObjectMock::embeddedAssetModel ();
38+ }
39+ public function tearDown (): void { }
40+
41+ public function testEmbeddedContentTypeEntry (): void
42+ {
43+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedContentType , $ this ->getMetadata (EmbedItemType::ENTRY , StyleType::BLOCK ));
44+ $ this ->assertEquals ($ blockString , '<div><p>uid</p><p>Content type: <span>contentTypeUid</span></p></div> ' );
45+
46+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedContentType , $ this ->getMetadata (EmbedItemType::ENTRY , StyleType::INLINE ));
47+ $ this ->assertEquals ($ blockString , '<span>uid</span> ' );
48+
49+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedContentType , $ this ->getMetadata (EmbedItemType::ENTRY , StyleType::LINK ));
50+ $ this ->assertEquals ($ blockString , '<a href=""></a> ' );
51+ }
52+
53+ public function testEmbeddedEntry (): void
54+ {
55+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedEntry , $ this ->getMetadata (EmbedItemType::ENTRY , StyleType::BLOCK ));
56+ $ this ->assertEquals ($ blockString , '<div><p>title</p><p>Content type: <span>contentTypeUid</span></p></div> ' );
57+
58+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedEntry , $ this ->getMetadata (EmbedItemType::ENTRY , StyleType::INLINE ));
59+ $ this ->assertEquals ($ blockString , '<span>title</span> ' );
60+
61+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedEntry , $ this ->getMetadata (EmbedItemType::ENTRY , StyleType::LINK ));
62+ $ this ->assertEquals ($ blockString , '<a href=""></a> ' );
63+ }
64+
65+ public function testEmbeddedAsset (): void
66+ {
67+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedAsset , $ this ->getMetadata (EmbedItemType::ASSET , StyleType::DISPLAY ));
68+ $ this ->assertEquals ($ blockString , '<img src="URL" alt="asset" /> ' );
69+
70+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedAsset , $ this ->getMetadata (EmbedItemType::ASSET , StyleType::DOWNLOAD ));
71+ $ this ->assertEquals ($ blockString , '<a href="URL"></a> ' );
72+ }
73+ public function testEmbeddedContentTypeEntryWithText (): void
74+ {
75+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedContentType , $ this ->getMetadata (EmbedItemType::ENTRY , StyleType::BLOCK , DefaultOptionTest::$ text ));
76+ $ this ->assertEquals ($ blockString , '<div><p>uid</p><p>Content type: <span>contentTypeUid</span></p></div> ' );
77+
78+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedContentType , $ this ->getMetadata (EmbedItemType::ENTRY , StyleType::INLINE , DefaultOptionTest::$ text ));
79+ $ this ->assertEquals ($ blockString , '<span>uid</span> ' );
80+
81+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedContentType , $ this ->getMetadata (EmbedItemType::ENTRY , StyleType::LINK , DefaultOptionTest::$ text ));
82+ $ this ->assertEquals ($ blockString , '<a href="">Text To set Link</a> ' );
83+ }
84+
85+ public function testEmbeddedEntryWithText (): void
86+ {
87+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedEntry , $ this ->getMetadata (EmbedItemType::ENTRY , StyleType::BLOCK , DefaultOptionTest::$ text ));
88+ $ this ->assertEquals ($ blockString , '<div><p>title</p><p>Content type: <span>contentTypeUid</span></p></div> ' );
89+
90+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedEntry , $ this ->getMetadata (EmbedItemType::ENTRY , StyleType::INLINE , DefaultOptionTest::$ text ));
91+ $ this ->assertEquals ($ blockString , '<span>title</span> ' );
92+
93+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedEntry , $ this ->getMetadata (EmbedItemType::ENTRY , StyleType::LINK , DefaultOptionTest::$ text ));
94+ $ this ->assertEquals ($ blockString , '<a href="">Text To set Link</a> ' );
95+ }
96+
97+ public function testEmbeddedAssetWithText (): void
98+ {
99+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedAsset , $ this ->getMetadata (EmbedItemType::ASSET , StyleType::DISPLAY , DefaultOptionTest::$ text ));
100+ $ this ->assertEquals ($ blockString , '<img src="URL" alt="asset" /> ' );
101+
102+ $ blockString = DefaultOptionTest::$ defaultRender ->renderOptions (DefaultOptionTest::$ embeddedAsset , $ this ->getMetadata (EmbedItemType::ASSET , StyleType::DOWNLOAD , DefaultOptionTest::$ text ));
103+ $ this ->assertEquals ($ blockString , '<a href="URL">Text To set Link</a> ' );
104+ }
105+ }
0 commit comments