1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
|
<?php
use Laravel\Prompts\Concerns\Truncation;
$instance = new class
{
use Truncation;
public function wordwrap(...$args)
{
return $this->mbWordwrap(...$args);
}
};
test('will match wordwrap', function () use ($instance) {
$str = "This is a story all about how my life got flipped turned upside down and I'd like to take a minute just sit right there I'll tell you how I became the prince of a town called Bel-Air";
$result = wordwrap($str);
$mbResult = $instance->wordwrap($str);
expect($mbResult)->toBe($result);
});
test('will match wordwrap on shorter strings', function () use ($instance) {
$str = "This is a story all\nabout how my life got\nflipped turned upside down and I'd like to take a minute just sit right there I'll tell you how I became the prince of a town called Bel-Air";
$result = wordwrap($str);
$mbResult = $instance->wordwrap($str);
expect($mbResult)->toBe($result);
});
test('will match wordwrap on blank lines strings', function () use ($instance) {
$str = "This is a story all about how my life got flipped turned upside down and I'd\n\nlike to take a minute just sit right there I'll tell you how I became the prince of a town called Bel-Air";
$result = wordwrap($str);
$mbResult = $instance->wordwrap($str);
expect($mbResult)->toBe($result);
});
test('will match wordwrap with cut long words enabled', function () use ($instance) {
$str = "This is a story all about how my life got flippppppppppppppppppppppppped turned upside down and I'd like to take a minute just sit right there I'll tell you how I became the prince of a town called Bel-Air";
$result = wordwrap($str, 25, "\n", true);
$mbResult = $instance->wordwrap($str, 25, "\n", true);
expect($mbResult)->toBe($result);
});
test('will match wordwrap with random multiple spaces', function () use ($instance) {
$str = " This is a story all about how my life got flipped turned upside down and I'd like to take a minute just sit right there I'll tell you how I became the prince of a town called Bel-Air";
$result = wordwrap($str, 25, "\n", true);
$mbResult = $instance->wordwrap($str, 25, "\n", true);
expect($mbResult)->toBe($result);
});
test('will match wordwrap with cut long words disabled', function () use ($instance) {
$str = "This is a story all about how my life got flippppppppppppppppppppppppped turned upside down and I'd like to take a minute just sit right there I'll tell you how I became the prince of a town called Bel-Air";
$result = wordwrap($str, 25, "\n", false);
$mbResult = $instance->wordwrap($str, 25, "\n", false);
expect($mbResult)->toBe($result);
});
test('will wrap strings with multi-byte characters', function () use ($instance) {
$str = "This is a story all about how my life got flippêd turnêd upsidê down and I'd likê to takê a minutê just sit right thêrê I'll têll you how I bêcamê thê princê of a town callêd Bêl-Air";
$mbResult = $instance->wordwrap($str, 18, "\n", false);
$expectedResult = <<<'RESULT'
This is a story
all about how my
life got flippêd
turnêd upsidê down
and I'd likê to
takê a minutê just
sit right thêrê
I'll têll you how
I bêcamê thê
princê of a town
callêd Bêl-Air
RESULT;
expect($mbResult)->toBe($expectedResult);
});
test('will wrap strings with emojis', function () use ($instance) {
$str = "This is a 📖 all about how my life got 🌀 turned upside ⬇️ and I'd like to take a minute just sit right there I'll tell you how I became the prince of a town called Bel-Air";
$mbResult = $instance->wordwrap($str, 13, "\n", false);
$expectedResult = <<<'RESULT'
This is a 📖
all about how
my life got
🌀 turned
upside ⬇️ and
I'd like to
take a minute
just sit
right there
I'll tell you
how I became
the prince of
a town called
Bel-Air
RESULT;
expect($mbResult)->toBe($expectedResult);
});
test('will wrap strings with emojis and multi-byte characters', function () use ($instance) {
$str = "This is a 📖 all about how my lifê got 🌀 turnêd upsidê ⬇️ and I'd likê to takê a minutê just sit right thêrê I'll têll you how I bêcamê thê princê of a town callêd Bêl-Air";
$mbResult = $instance->wordwrap($str, 11, "\n", false);
$expectedResult = <<<'RESULT'
This is a
📖 all
about how
my lifê got
🌀 turnêd
upsidê ⬇️
and I'd
likê to
takê a
minutê just
sit right
thêrê I'll
têll you
how I
bêcamê thê
princê of a
town callêd
Bêl-Air
RESULT;
expect($mbResult)->toBe($expectedResult);
});
test('will wrap strings with combined emojis', function () use ($instance) {
$str = "This is a 📖 all about how my life got 🌀 turned upside ⬇️ and I'd like to take a minute just sit right there I'll tell you how I became the prince of a 👨👩👧👦 called Bel-Air";
$mbResult = $instance->wordwrap($str, 13, "\n", false);
$expectedResult = <<<'RESULT'
This is a 📖
all about how
my life got
🌀 turned
upside ⬇️ and
I'd like to
take a minute
just sit
right there
I'll tell you
how I became
the prince of
a 👨👩👧👦 called
Bel-Air
RESULT;
expect($mbResult)->toBe($expectedResult);
});
test('will handle long strings with multi-byte characters and emojis with cut long words enabled', function () use ($instance) {
$str = "This is a 📖 all about how my life got 🌀 turned upside ⬇️ and I'd like to take a minute just sit right there I'll tell you how I became the prince of a 👨👩👧👦 called Bel-Air";
$mbResult = $instance->wordwrap($str, 13, "\n", false);
$expectedResult = <<<'RESULT'
This is a 📖
all about how
my life got
🌀 turned
upside ⬇️ and
I'd like to
take a minute
just sit
right there
I'll tell you
how I became
the prince of
a 👨👩👧👦 called
Bel-Air
RESULT;
expect($mbResult)->toBe($expectedResult);
});
|