मैं सेलेनियम और PHPUnit का उपयोग कर अपने ज़ेंड फ्रेमवर्क एप्लिकेशन का परीक्षण कर रहा हूं। मेरे पास एक परीक्षण है जिसे एक यूआरएल खोलने की जरूरत है जिसमें एक एन्कोडेड यूआरएल है।ज़ेन फ्रेमवर्क: एन्कोड डीकोडिंग एन्कोडेड यूआरएल पास करने के बजाय एन्कोडेड यूआरएल?
$redirectToLocation = urlencode('/myothercontroller/action'); // %2Fmyothercontroller%2Faction
$this->openAndWait('/controller/action/thenRedirectTo/' . $redirectToLocation);
लेकिन जब मैं अपने परीक्षण चलाने के लिए, ब्राउज़र डीकोड यूआरएल को खोलने की कोशिश की:
/controller/action/thenRedirectTo//myothercontroller/action
क्या मैं सेलेनियम इनकोडिंग URL खोलने के लिए प्राप्त करने के लिए क्या करना चाहिए?
अद्यतन: असल में ... पता चला है सेलेनियम यह काम है क्या कर रहा है, लेकिन यह के रूप में अगर Apache URL डिकोडिंग है इससे पहले कि यह नियंत्रक से हो जाता है लगता है:
The requested URL /controller/action/thenRedirectTo//myothercontroller/action was not found on this server.
मैं इस समस्या को कैसे ठीक करना चाहिए ?
अद्यतन: मेरे पास एक ही समस्या के बारे में पूरी बातचीत है: http://old.nabble.com/URL-Encoding-td18850769.html। उनका वर्कअराउंड बेस 64 को यूआरएल एन्कोड करना था, लेकिन यह मेरे लिए पर्याप्त नहीं है। मैं इस समाधान का उपयोग अल्प अवधि में कर सकता हूं, लेकिन मैं जानना चाहता हूं कि इस समस्या का असली कारण क्या है, इसलिए मैं इसे खत्म कर सकता हूं।
अद्यतन: मेरे पास एक सहकर्मी है जो सोचता है कि ज़ेंड फ्रेमवर्क अनुरोध को रूट करने के तरीके में कोई समस्या हो सकती है। क्या आपको लगता है कि यह मामला हो सकता है?
कोशिश नहीं की है, लेकिन यह काम कर सकता है। हालांकि, मैं अपने कोड को हैक करने के बजाय, सही तरीके से काम करने के लिए अपाचे को समायोजित करना चाहता हूं। – Andrew
यह एक बदसूरत कामकाज है। मैं मानता हूं कि अपाचे को इसके साथ गड़बड़ नहीं करनी चाहिए। निश्चित रूप से यह किसी भी तरह विन्यास योग्य है? – mcv