ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest Class Reference
+ Inheritance diagram for ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest:
+ Collaboration diagram for ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest:

Public Member Functions

 testExceptionIsRaisedIfInputIsNotAString (mixed $from)
 
 testReadingTimeForPlainTextCanBeDetermined ()
 
 testReadingTimeForHtmlFragmentCanBeDetermined ()
 
 testSolitaryPunctuationCharactersMustNotAffectReadingTime ()
 
 testXTHMLCommentsMustNotAffectReadingTime ()
 
 testNoExceptionIsRaisedIfHtmlContainsUnsupportedEntities (string $text)
 
 testNoExceptionIsRaisedIfHtmlContainsAmpersandInUrls ()
 

Static Public Member Functions

static inputProvider ()
 
static unsupportedButKnownEntitiesProvider ()
 

Protected Member Functions

 setUp ()
 

Private Attributes

const TEXT =
 
const HTML =
 
const HTML_WITH_NON_XHTML_URLS =
 
Refinery $refinery
 

Detailed Description

Definition at line 33 of file EstimatedReadingTimeTest.php.

Member Function Documentation

◆ inputProvider()

static ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest::inputProvider ( )
static
Returns
array[]

Definition at line 61 of file EstimatedReadingTimeTest.php.

61 : array
62 {
63 return [
64 [5],
65 [6.3],
66 [[]],
67 [new stdClass()],
68 [true],
69 [null],
70 [static function (): void {
71 }],
72 ];
73 }

◆ setUp()

ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest::setUp ( )
protected

Definition at line 48 of file EstimatedReadingTimeTest.php.

48 : void
49 {
50 $this->refinery = new Refinery(
51 $this->createMock(DataFactory::class),
52 $this->createMock(Language::class)
53 );
54
55 parent::setUp();
56 }

References ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ testExceptionIsRaisedIfInputIsNotAString()

ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest::testExceptionIsRaisedIfInputIsNotAString ( mixed  $from)

Definition at line 98 of file EstimatedReadingTimeTest.php.

98 : void
99 {
100 $this->expectException(InvalidArgumentException::class);
101 $readingTimeTrafo = $this->refinery->string()->estimatedReadingTime(true);
102
103 $readingTimeTrafo->transform($from);
104 }

References ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ testNoExceptionIsRaisedIfHtmlContainsAmpersandInUrls()

ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest::testNoExceptionIsRaisedIfHtmlContainsAmpersandInUrls ( )

Definition at line 177 of file EstimatedReadingTimeTest.php.

177 : void
178 {
179 $reading_time_trafo = $this->refinery->string()->estimatedReadingTime(true);
180
181 $reading_time = $reading_time_trafo->transform(self::HTML_WITH_NON_XHTML_URLS);
182
183 $this->assertIsInt($reading_time);
184 $this->assertGreaterThan(0, $reading_time);
185 }

References ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ testNoExceptionIsRaisedIfHtmlContainsUnsupportedEntities()

ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest::testNoExceptionIsRaisedIfHtmlContainsUnsupportedEntities ( string  $text)

Definition at line 167 of file EstimatedReadingTimeTest.php.

167 : void
168 {
169 $reading_time_trafo = $this->refinery->string()->estimatedReadingTime(true);
170
171 $reading_time = $reading_time_trafo->transform($text);
172
173 $this->assertIsInt($reading_time);
174 $this->assertGreaterThan(0, $reading_time);
175 }

References ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ testReadingTimeForHtmlFragmentCanBeDetermined()

ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest::testReadingTimeForHtmlFragmentCanBeDetermined ( )

Definition at line 115 of file EstimatedReadingTimeTest.php.

115 : void
116 {
117 $text = self::HTML;
118
119 $readingTimeTrafo = $this->refinery->string()->estimatedReadingTime(true);
120 $this->assertEquals(
121 2,
122 $readingTimeTrafo->transform($text)
123 );
124
125 $onlyTextReadingTimeInfo = $this->refinery->string()->estimatedReadingTime();
126 $this->assertEquals(
127 1,
128 $onlyTextReadingTimeInfo->transform($text)
129 );
130 }

References ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest\HTML, and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ testReadingTimeForPlainTextCanBeDetermined()

ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest::testReadingTimeForPlainTextCanBeDetermined ( )

Definition at line 106 of file EstimatedReadingTimeTest.php.

106 : void
107 {
108 $readingTimeTrafo = $this->refinery->string()->estimatedReadingTime(true);
109 $this->assertEquals(
110 1,
111 $readingTimeTrafo->transform(self::TEXT)
112 );
113 }

References ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ testSolitaryPunctuationCharactersMustNotAffectReadingTime()

ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest::testSolitaryPunctuationCharactersMustNotAffectReadingTime ( )

Definition at line 132 of file EstimatedReadingTimeTest.php.

132 : void
133 {
134 $textSegmentWithPunctuation = 'Lorem ipsum <img src="#" />, and some other text... ';
135 $repetitions = 300; // 275 repetitions result in an additional minute, if the `,` would be considered
136
137 $readingTimeTrafo = $this->refinery->string()->estimatedReadingTime(true);
138
139 $text = str_repeat($textSegmentWithPunctuation, $repetitions);
140
141 $timeInMinutes = $readingTimeTrafo->transform($text);
142 $this->assertEquals(23, $timeInMinutes);
143
144 $textSegmentWithoutPunctuation = 'Lorem ipsum <img src="#" /> and some other text... ';
145 $text = str_repeat($textSegmentWithoutPunctuation, $repetitions);
146
147 $timeInMinutes = $readingTimeTrafo->transform($text);
148 $this->assertEquals(23, $timeInMinutes);
149 }

References ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ testXTHMLCommentsMustNotAffectReadingTime()

ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest::testXTHMLCommentsMustNotAffectReadingTime ( )

Definition at line 151 of file EstimatedReadingTimeTest.php.

151 : void
152 {
153 $text = self::HTML;
154
155 $comment = '<script><!--a comment--></script>';
156 $repetitions = 300;
157 $text .= str_repeat($comment, $repetitions);
158
159 $onlyTextReadingTimeInfo = $this->refinery->string()->estimatedReadingTime();
160 $this->assertEquals(
161 1,
162 $onlyTextReadingTimeInfo->transform($text)
163 );
164 }
$comment
Definition: buildRTE.php:72

References $comment, ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest\HTML, and ILIAS\Repository\refinery().

+ Here is the call graph for this function:

◆ unsupportedButKnownEntitiesProvider()

static ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest::unsupportedButKnownEntitiesProvider ( )
static
Returns
array[]

Definition at line 78 of file EstimatedReadingTimeTest.php.

78 : array
79 {
80 return array_map(static function (string $entity): array {
81 return [
82 '<div>Lorem ipsum dolor <' . $entity . '></' . $entity . '></div>'
83 ];
84 }, [
85 'figure',
86 'figcaption',
87 'nav',
88 'section',
89 'header',
90 'article',
91 'footer',
92 'aside',
93 'noindex',
94 ]);
95 }

Field Documentation

◆ $refinery

Refinery ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest::$refinery
private

Definition at line 46 of file EstimatedReadingTimeTest.php.

◆ HTML

◆ HTML_WITH_NON_XHTML_URLS

const ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest::HTML_WITH_NON_XHTML_URLS =
private

Definition at line 42 of file EstimatedReadingTimeTest.php.

◆ TEXT

const ILIAS\Tests\Refinery\String\EstimatedReadingTimeTest::TEXT =
private

Definition at line 35 of file EstimatedReadingTimeTest.php.


The documentation for this class was generated from the following file: