Судя по всему, проблема в классе /codeception/src/Codeception/Lib/InnerBrowser.php, в функции checkOption (в uncheckOption
по идее та же проблема). Если эту строку:
$name = rtrim($name, '[]');
Заменить на:
$name = str_replace('[]', '', $name);
То все начинает прекрасно работать. С rtrim, мне кажется, получается не тот эффект который нужен, так как символы [] в строке “BMessage[topicsLinks][]” удаляются не корректно. В итоге имя поля получается таким “BMessage[topicsLinks”. С str_replace же удаляется исключительно последовательность [], не трогая лишние квадратные скобки.
Возможно кто-то сможет мне помочь чтобы создать issues в гите, а то с английским у меня проблемы (точно не смогу весь этот топик перевести корректно)
Вы можете написать свой метод checkOption внутри класса FunctionalHelper, там вы можете применить свой фикс и подменить стандартный метод на свой.
Впринципе да, похоже на баг. Буду очень благодарен, если вы опишите эту проблему на английском с описанием предложенного фикса на гитхабе Issues · Codeception/Codeception · GitHub
Тогда будет намного больший шанс, что я про неё не забуду и починю в следующем релизе.
Спасибо большое. Единственное, что, я так понял, в функции uncheckOption будет точно такая же проблема, (конкретно я эту функцию не использую еще, поэтому нужно будет проверить еще). Но уже имя пример как сделать тест правильно (на примере вашего фикса), я могу позже попробовать сделать pull request для правки этой функции