| <!DOCTYPE html> |
| <!-- |
| |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| --> |
| |
| |
| <html> |
| <head> |
| <meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,maximum-scale=1.0,initial-scale=1.0" /> |
| <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <!-- ISO-8859-1 --> |
| <title>Cordova Mobile Spec</title> |
| <link rel="stylesheet" href="../master.css" type="text/css" media="screen" title="no title" charset="utf-8"> |
| <script type="text/javascript" charset="utf-8" src="../cordova-incl.js"></script> |
| <script type="text/javascript" charset="utf-8" src="./index.js"></script> |
| </head> |
| <body id="stage" class="theme"> |
| |
| <h1>InAppBrowser</h1> |
| <div id="info"> |
| Make sure http://www.google.com is white listed. </br> |
| Make sure http://www.apple.com is not in the white list.</br> In iOS, starred <span style="vertical-align:super">*</span> tests will put the app in a state with no way to return. </br> |
| <h4>User-Agent: <span id="user-agent"> </span></h4> |
| </div> |
| <div class="btn small backBtn">Back</div> |
| |
| <h1>Local URL</h1> |
| <div class="btn large openLocal">target = Default</div> |
| Expected result: opens successfully in CordovaWebView. |
| |
| <p/> |
| <div class="btn large openLocalSelf">target=_self</div> |
| Expected result: opens successfully in CordovaWebView. |
| |
| <p/> |
| <div class="btn large openLocalSystem">target=_system</div> |
| Expected result: fails to open. |
| |
| <p/> |
| <div class="btn large openLocalBlank">target=_blank</div> |
| Expected result: opens successfully in InAppBrowser with locationBar at top. |
| |
| <p/> |
| <div class="btn large openLocalRandomNoLocation">target=Random, location=no,disallowoverscroll=yes</div> |
| Expected result: opens successfully in InAppBrowser without locationBar. |
| |
| <p/> |
| <div class="btn large openLocalRandomToolBarBottom">target=Random, toolbarposition=bottom</div> |
| Expected result: opens successfully in InAppBrowser with locationBar. On iOS the toolbar is at the bottom. |
| |
| <p/> |
| <div class="btn large openLocalRandomToolBarTop">target=Random, toolbarposition=top</div> |
| Expected result: opens successfully in InAppBrowser with locationBar. On iOS the toolbar is at the top. |
| |
| <p/> |
| <div class="btn large openLocalRandomToolBarTopNoLocation">target=Random, toolbarposition=top,location=no</div> |
| Expected result: opens successfully in InAppBrowser with no locationBar. On iOS the toolbar is at the top. |
| |
| <h1>White Listed URL</h1> |
| |
| <div class="btn large openWhiteListed">target=Default<span style="vertical-align:super">*</span></div> |
| Expected result: open successfully in CordovaWebView to www.google.com. |
| |
| <p/> |
| <div class="btn large openWhiteListedSelf">target=_self<span style="vertical-align:super">*</span></div> |
| Expected result: open successfully in CordovaWebView to www.google.com. |
| |
| <p/> |
| <div class="btn large openWhiteListedSystem">target=_system</div> |
| Expected result: open successfully in system browser to www.google.com. |
| |
| <p/> |
| <div class="btn large openWhiteListedBlank">target=_blank</div> |
| Expected result: open successfully in InAppBrowser to www.google.com. |
| |
| <p/> |
| <div class="btn large openWhiteListedRandom">target=Random</div> |
| Expected result: open successfully in InAppBrowser to www.google.com. |
| |
| <p/> |
| <div class="btn large openWhiteListedRandomNoLocation">target=Random, no location bar<span style="vertical-align:super">*</span></div> |
| Expected result: open successfully in InAppBrowser to www.google.com with no location bar. |
| |
| <h1>Non White Listed URL</h1> |
| |
| <div class="btn large openNonWhiteListed">target=Default</div> |
| Expected result: open successfully in InAppBrowser to apple.com (_self enforces whitelist). |
| |
| <p/> |
| <div class="btn larg openNonWhiteListedSelf">target=_self</div> |
| Expected result: open successfully in InAppBrowser to apple.com (_self enforces whitelist). |
| |
| <p/> |
| <div class="btn large openNonWhiteListedSystem">target=_system</div> |
| Expected result: open successfully in system browser to apple.com. |
| |
| <p/> |
| <div class="btn large openNonWhiteListedBlank">target=_blank</div> |
| Expected result: open successfully in InAppBrowser to apple.com. |
| |
| <p/> |
| <div class="btn large openNonWhiteListedRandom">target=Random</div> |
| Expected result: open successfully in InAppBrowser to apple.com. |
| |
| <p/> |
| <div class="btn large openNonWhiteListedRandomNoLocation">target=Random, no location bar<span style="vertical-align:super">*</span></div> |
| Expected result: open successfully in InAppBrowser to apple.com without locationBar. |
| |
| <h1>Page with redirect</h1> |
| |
| <div class="btn large openRedirect301">http://google.com</div> |
| Expected result: should 301 and open successfully in InAppBrowser to www.google.com. |
| |
| <p/> |
| <div class="btn large openRedirect302">http://goo.gl/pUFqg</div> |
| Expected result: should 302 and open successfully in InAppBrowser to www.zhihu.com/answer/16714076. |
| |
| <h1>PDF URL</h1> |
| |
| <div class="btn large openPDF">Remote URL</div> |
| Expected result: InAppBrowser opens. PDF should render on iOS. |
| |
| <p/> |
| <div class="btn large openPDFBlank">Local URL</div> |
| Expected result: InAppBrowser opens. PDF should render on iOS. |
| |
| <h1>Invalid URL</h1> |
| |
| <div class="btn large openInvalidScheme">Invalid Scheme</div> |
| Expected result: fail to load in InAppBrowser. |
| |
| <p/> |
| <div class="btn large openInvalidHost">Invalid Host</div> |
| Expected result: fail to load in InAppBrowser. |
| |
| <p/> |
| <div class="btn large openInvalidMissing">Missing Local File</div> |
| Expected result: fail to load in InAppBrowser (404). |
| |
| <h1>CSS / JS Injection</h1> |
| |
| <div class="btn large openOriginalDocument">Original Document</div> |
| Expected result: open successfully in InAppBrowser without text "Style updated from..." |
| |
| <p/> |
| <div class="btn large openCSSInjection">CSS File Injection</div> |
| Expected result: open successfully in InAppBrowser with "Style updated from file". |
| |
| <p/> |
| <div class="btn large openCSSInjectionCallback">CSS File Injection (callback)</div> |
| Expected result: open successfully in InAppBrowser with "Style updated from file", and alert dialog with text "Results verified". |
| |
| <p/> |
| <div class="btn large openCSSLiteralInjection">CSS Literal Injection</div> |
| Expected result: open successfully in InAppBrowser with "Style updated from literal". |
| |
| <p/> |
| <div class="btn large openCSSLiteralInjectionCallback">CSS Literal Injection (callback)</div> |
| Expected result: open successfully in InAppBrowser with "Style updated from literal", and alert dialog with text "Results verified". |
| |
| <p/> |
| <div class="btn large openScriptInjection">Script File Injection</div> |
| Expected result: open successfully in InAppBrowser with text "Script file successfully injected". |
| |
| <p/> |
| <div class="btn large openScriptInjectionCallback">Script File Injection (callback)</div> |
| Expected result: open successfully in InAppBrowser with text "Script file successfully injected" and alert dialog with the text "Results verified". |
| |
| <p/> |
| <div class="btn large openScriptLiteralInjection">Script Literal Injection</div> |
| Expected result: open successfully in InAppBrowser with the text "Script literal successfully injected" . |
| |
| <p/> |
| <div class="btn large openScriptLiteralInjectionCallback">Script Literal Injection (callback)</div> |
| Expected result: open successfully in InAppBrowser with the text "Script literal successfully injected" and alert dialog with the text "Results verified". |
| |
| <h1>Open Hidden </h1> |
| <div class="btn large openHidden">create hidden</div> |
| Expected result: no additional browser window. Alert appears with the text "background window loaded". |
| |
| <p/> |
| <div class="btn large showHidden">show hidden</div> |
| Expected result: after first clicking on previous test "create hidden", open successfully in InAppBrowser to google.com. |
| |
| <p/> |
| <div class="btn large closeHidden">close hidden</div> |
| Expected result: no output. But click on "show hidden" again and nothing should be shown. |
| |
| <p/> |
| <div class="btn large openHiddenShow">google.com not hidden</div> |
| Expected result: open successfully in InAppBrowser to www.google.com |
| |
| <h1>Clearing Cache</h1> |
| |
| <div class="btn large openClearCache">Clear Browser Cache</div> |
| Expected result: ? |
| |
| <p/> |
| <div class="btn large openClearSessionCache">Clear Session Cache</div> |
| Expected result: ? |
| |
| <h1>Video tag</h1> |
| |
| <div class="btn large openRemoteVideo">remote video</div> |
| Expected result: open successfully in InAppBrowser with an embedded video that works after clicking the "play" button. |
| |
| <h1>Local with anchor tag</h1> |
| |
| <div class="btn large openAnchor1">Anchor1</div> |
| Expected result: open successfully in InAppBrowser to the local page, scrolled to the top. |
| |
| <p/> |
| <div class="btn large openAnchor2">Anchor2</div> |
| Expected result: open successfully in InAppBrowser to the local page, scrolled to the beginning of the tall div with border. |
| |
| <p/> |
| <div class="backBtn">Back</div> |
| |
| </body> |
| </html> |