/** * @test */ public function getQueryArgumentsOverrulesMultiDimensionalForcedParameters() { $_SERVER['QUERY_STRING'] = 'key1=value1' . '&key2=value2' . '&key3[key31]=value31' . '&key3[key32][key321]=value321' . '&key3[key32][key322]=value322'; $_POST = array('key1' => 'value1', 'key2' => 'value2', 'key3' => array('key31' => 'value31', 'key32' => array('key321' => 'value321', 'key322' => 'value322'))); $getQueryArgumentsConfiguration = array(); $getQueryArgumentsConfiguration['exclude'] = array(); $getQueryArgumentsConfiguration['exclude'][] = 'key1'; $getQueryArgumentsConfiguration['exclude'][] = 'key3[key31]'; $getQueryArgumentsConfiguration['exclude'][] = 'key3[key32][key321]'; $getQueryArgumentsConfiguration['exclude'][] = 'key3[key32][key322]'; $getQueryArgumentsConfiguration['exclude'] = implode(',', $getQueryArgumentsConfiguration['exclude']); $overruleArguments = array('key2' => 'value2Overruled', 'key3' => array('key32' => array('key321' => 'value321Overruled', 'key323' => 'value323Overruled'))); $expectedResult = $this->rawUrlEncodeSquareBracketsInUrl('&key2=value2Overruled&key3[key32][key321]=value321Overruled&key3[key32][key323]=value323Overruled'); $actualResult = $this->cObj->getQueryArguments($getQueryArgumentsConfiguration, $overruleArguments, TRUE); $this->assertEquals($expectedResult, $actualResult); $getQueryArgumentsConfiguration['method'] = 'POST'; $actualResult = $this->cObj->getQueryArguments($getQueryArgumentsConfiguration, $overruleArguments, TRUE); $this->assertEquals($expectedResult, $actualResult); }