api#347: передавать и настраивать UTM part без ссылки в Preland
This commit is contained in:
1 parent
94619432a3
commit
0d350ed14b
23 files changed
+126
-47
No files matched your search
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
/** api#347: part задаёт передаваемый вариант, но никогда не добавляет ссылку на Preland. */
|
||||
declare(strict_types=1);
|
||||
require dirname(__DIR__) . '/components/utm-codec.php';
|
||||
function partCheck(bool $ok, string $message): void { if (!$ok) throw new RuntimeException($message); }
|
||||
foreach (['abcd1'=>'1','abcd2'=>'2','абвг2'=>'2','abcd0'=>'1','abcd9'=>'1','2'=>'1','abcdx'=>'1','abc'=>'1'] as $raw=>$expected) {
|
||||
$value=prelandResolveUtm(['part'=>$raw,'utm_source'=>'keep'],[]);
|
||||
partCheck(($value['digits']['part']??null)===$expected && ($value['context']['part']??null)===$expected, 'part: fifth symbol / default1: '.$raw);
|
||||
partCheck($value['context']['utm_source']==='keep','foreign query preserved');
|
||||
}
|
||||
foreach ([[],null, false, "\xffabcd2"] as $invalid) partCheck((prelandResolveUtm(['part'=>$invalid],[])['digits']['part']??null)==='1','invalid fallback');
|
||||
$config=['utm'=>['part'=>['default'=>'2','weights'=>['1'=>0,'2'=>100]]]];
|
||||
for($i=0;$i<200;$i++) partCheck(prelandResolveUtm(['part'=>'abcd0'],$config)['digits']['part']==='2','random follows configured weights');
|
||||
partCheck(prelandResolveUtm(['part'=>'abcd1'],$config)['digits']['part']==='1','concrete independent of weights');
|
||||
partCheck(prelandResolveUtm([],['utm'=>['part'=>['default'=>'2']]])['digits']['part']==='2','configured default');
|
||||
partCheck(prelandResolveUtm(['part'=>'abcd0'],['utm'=>['part'=>['default'=>'1','weights'=>['2'=>0,'1'=>0]]]])['digits']['part']==='2','existing generic zero weights order');
|
||||
$_GET=['part'=>'abcd2','utm_source'=>'keep'];$_SERVER['HTTP_HOST']='zoomstage.online';
|
||||
ob_start();require dirname(__DIR__).'/index.php';$html=ob_get_clean();
|
||||
partCheck(!array_key_exists('part',$get_params),'part is not foreign query');
|
||||
partCheck($redirect_digits['part']==='2','handoff snapshot part');
|
||||
echo "OK: part numeric/default/random/context/foreign boundary\n";
|
||||
|
||||
Reference in new issue
Block a user