Closed Bug 748207 Opened 12 years ago Closed 12 years ago

Add support for web app installation to mozqa.com

Categories

(Mozilla QA Graveyard :: Infrastructure, defect)

defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: jsmith, Assigned: jsmith)

Details

Attachments

(2 files, 8 obsolete files)

Add support for web app installation to mozqa.com to allow for reuse of the test cases on that server against the web runtime on desktop, android, and others as needed. This requires the following things to be done:

- Add a directory for apps
- Add an app manifest for mozqa.com
- Create a test page for installing the mozqa.com application
- Allow mozqa.com to serve application/x-web-app-manifest+json for webapp files
Assignee: nobody → jsmith
Status: NEW → ASSIGNED
Attached patch Web App Install for Mozqa (obsolete) — Splinter Review
Attachment #617753 - Flags: review?(hskupin)
Attached image Web App QA Logo
I know I'm going to get this question during the review, so I'll answer it now:

The HTML page is using an absolute URL, not a relative URL, since bug 745928 currently exists. This bug existing blocks the use of a relative URL.
Attached file Mime Type Changes on Mozqa (obsolete) —
Attachment #617755 - Flags: review?(hskupin)
A couple of notes:

- The diff for the mime type changes alters the mime.types file in /etc/mime.types
- We will need to restart the mozqa service to be able to serve webapp files under the webapp MIME type
Comment on attachment 617753 [details] [diff] [review]
Web App Install for Mozqa

If it's a patch please mark it as such in the future when attaching a patch.

>+++ b/apps/appinstall.html	Mon Apr 23 19:58:57 2012 -0700

I would like to see in which repository you would like to add this. Is it litmus-data? Also I wonder if we should use 'webapps' given that this word is more commonly used.

>+<html>
>+	<head>

Please use an indentation of 2 blanks. No tabs are allowed.

>+		<title>MozQA Runtime Test Cases App</title>

I would kinda like to see for what this page is used. Is it for an example application or any applications we want to host? Which other files you have in mind to add? What's the proposed folder structure for those?

>+		<script type="text/javascript">
>+			function installApp() {
>+				navigator.mozApps.install("http://mozqa.com/data/apps/manifest.webapp")
>+			}
>+		</script>

AFAIK a single webapp needs its own domain or a server running on another port. So not sure how you want to handle multiple apps testing on our site.

>+</html>
>\ No newline at end of file

nit: new line at the end please.

>+++ b/apps/manifest.webapp	Mon Apr 23 19:58:57 2012 -0700

I think that you want to add another hierarchy for the QMO website.

>+	"developer":
>+	{
>+		"url": "http://quality.mozilla.org",
>+		"name": "Mozilla QA"
>+	},
>+	"launch_path": "/data",
>+	"icons": {
>+		"128": "/data/apps/qalogo.png"
>+	},
>+	"name": "Mozilla QA WebRT Tester",
>+	"description": "An app for running web runtime test cases with native applications"

Do you have a link to the format description of this file? I kinda would like to have a look at.

>\ No newline at end of file

nit: same as above.
Attachment #617753 - Attachment is patch: true
Attachment #617753 - Flags: review?(hskupin) → review-
Comment on attachment 617755 [details]
Mime Type Changes on Mozqa

>352a353
>> application/x-web-app-manifest+json webapp

This looks like an incomplete patch. Where will this end up? I think you want to add a .htaccess file to the apps folder, so this setting can be picked up by Apache.
Attachment #617755 - Flags: review?(hskupin) → review-
(In reply to Henrik Skupin (:whimboo) from comment #6)
> Comment on attachment 617753 [details] [diff] [review]
> Web App Install for Mozqa
> 
> If it's a patch please mark it as such in the future when attaching a patch.
>

Okay.
 
> >+++ b/apps/appinstall.html	Mon Apr 23 19:58:57 2012 -0700
> 
> I would like to see in which repository you would like to add this. Is it
> litmus-data? Also I wonder if we should use 'webapps' given that this word
> is more commonly used.

Yes it would be litmus data (http://hg.mozilla.org/qa/litmus-data/). Sure, let's use webapps.

> 
> >+<html>
> >+	<head>
> 
> Please use an indentation of 2 blanks. No tabs are allowed.
> 
> >+		<title>MozQA Runtime Test Cases App</title>
> 
> I would kinda like to see for what this page is used. Is it for an example
> application or any applications we want to host? Which other files you have
> in mind to add? What's the proposed folder structure for those?
> 

It's just an initial test page for installing mozqa.com/data on the default port (port 80) to reuse the test cases that exist there when using the runtime (after I have launched the application, this application I use to test functionality within the application). In the short term, it won't be used for every application we want to host, as I was planning on working on that down in the line in a future bug (bug 738845). Files I intend to add to mozqa.com will be test cases that affect the WebRT specifically, such as (note: I'll have to check if these already exist on the site):

- Testing a page with a link that points away from mozqa.com (e.g. google.com)
- Testing a page with a link to open a pop-up that points away from mozqa.com (e.g. google.com)
- Testing the user agent for the web runtime (it's different than firefox right now)

Folder Structure:

folders within firefox/ - Contains test cases while using the app. Example:
* popups <-- would contain the two additional test cases I intend to add for the off origin link and off-origin pop-up (although they may already exist, need to double check)
the webapps/ folder - App test page and installation setup to install the web app

Future considerations:

- Multiple applications (as in testing the manifests) will be handled in bug 738845. I'm thinking of adding subdomains for each application, but note this still up in the air (Ian Bicking, me, and David Clarke have been trying a "good" way to do it)

> >+		<script type="text/javascript">
> >+			function installApp() {
> >+				navigator.mozApps.install("http://mozqa.com/data/apps/manifest.webapp")
> >+			}
> >+		</script>
> 
> AFAIK a single webapp needs its own domain or a server running on another
> port. So not sure how you want to handle multiple apps testing on our site.

Right, a webapp needs its own domain and port. Is this case - The webapp's domain and port should be - mozqa.com:80 (or mozqa.com on the default port). I'll handle multiple apps testing down the line in a separate bug (feel free to comment on that bug talking about that, we're trying to figure out a "good" way to do it).

> 
> >+</html>
> >\ No newline at end of file
> 
> nit: new line at the end please.
> 
> >+++ b/apps/manifest.webapp	Mon Apr 23 19:58:57 2012 -0700
> 
> I think that you want to add another hierarchy for the QMO website.
> 

? Confused here. The manifest only allows you install a single application for mozqa.com on port 80. Why would I need to add another hierarchy?

> >+	"developer":
> >+	{
> >+		"url": "http://quality.mozilla.org",
> >+		"name": "Mozilla QA"
> >+	},
> >+	"launch_path": "/data",
> >+	"icons": {
> >+		"128": "/data/apps/qalogo.png"
> >+	},
> >+	"name": "Mozilla QA WebRT Tester",
> >+	"description": "An app for running web runtime test cases with native applications"
> 
> Do you have a link to the format description of this file? I kinda would
> like to have a look at.

https://developer.mozilla.org/en/Apps/Manifest

> 
> >\ No newline at end of file
> 
> nit: same as above.

(In reply to Henrik Skupin (:whimboo) from comment #7)
> Comment on attachment 617755 [details]
> Mime Type Changes on Mozqa
> 
> >352a353
> >> application/x-web-app-manifest+json webapp
> 
> This looks like an incomplete patch. Where will this end up? I think you
> want to add a .htaccess file to the apps folder, so this setting can be
> picked up by Apache.

/etc/mime.types is going to be modified to include the line of code you see above. Why use a .htaccess file instead of modifying the mime.types file in /etc/mime.types (http://en.wikipedia.org/wiki/Mailcap)? The .htaccess file would apply to a single directory. Wouldn't modifying the mime.types file allow anywhere on mozqa.com to serve the mime type for web app manifests?
(In reply to Jason Smith from comment #8)
> It's just an initial test page for installing mozqa.com/data on the default
> port (port 80) to reuse the test cases that exist there when using the

In this case I would say lets use '/webapps/mozqa.com/*'. That way we have a good start for a folder structure and other apps at the same location. It will make it easier later to create virtual hosts.

> - Testing a page with a link that points away from mozqa.com (e.g.
> google.com)
> - Testing a page with a link to open a pop-up that points away from
> mozqa.com (e.g. google.com)

All those test files exist already. So none you will have to add.

> I'll handle multiple apps testing down the line in a separate bug (feel free
> to comment on that bug talking about that, we're trying to figure out a
> "good" way to do it).

If you want my feedback please always CC me or ask for feedback on an attachment.

> > >+++ b/apps/manifest.webapp	Mon Apr 23 19:58:57 2012 -0700
> > 
> > I think that you want to add another hierarchy for the QMO website.
> > 
> 
> ? Confused here. The manifest only allows you install a single application
> for mozqa.com on port 80. Why would I need to add another hierarchy?

As I see in the manifest file it's for http://quality.mozilla.org but not http://www.mozqa.com.

> > Do you have a link to the format description of this file? I kinda would
> > like to have a look at.
> 
> https://developer.mozilla.org/en/Apps/Manifest

Thanks. Will check with your code once you have updated the patch.

> /etc/mime.types is going to be modified to include the line of code you see
> above. Why use a .htaccess file instead of modifying the mime.types file in
> /etc/mime.types (http://en.wikipedia.org/wiki/Mailcap)? The .htaccess file
> would apply to a single directory. Wouldn't modifying the mime.types file
> allow anywhere on mozqa.com to serve the mime type for web app manifests?

It would apply to the current folder and any sub folder. Once you please that .htaccess file in /webapps it should work fine for every app you want to test. Personally I'm against modifying global settings.
Attached patch Web App Support for Mozqa (obsolete) — Splinter Review
Attachment #617753 - Attachment is obsolete: true
Attachment #617755 - Attachment is obsolete: true
Attachment #618331 - Flags: review?(hskupin)
Attached patch Web App Support for Mozqa (obsolete) — Splinter Review
Attachment #618331 - Attachment is obsolete: true
Attachment #618331 - Flags: review?(hskupin)
Attachment #618332 - Flags: review?(hskupin)
Attached patch Web App Support for Mozqa (obsolete) — Splinter Review
Attachment #618333 - Flags: review?(hskupin)
Attached patch Web App Support for Mozqa (obsolete) — Splinter Review
Attachment #618332 - Attachment is obsolete: true
Attachment #618333 - Attachment is obsolete: true
Attachment #618332 - Flags: review?(hskupin)
Attachment #618333 - Flags: review?(hskupin)
Attachment #618334 - Flags: review?(hskupin)
Comment on attachment 618334 [details] [diff] [review]
Web App Support for Mozqa

>+++ b/webapps/mozqa.com/appinstall.html	Wed Apr 25 09:55:05 2012 -0700

>+    <input name="Install App" type="submit" value="Install Free App" onclick="installApp()">

I wonder if a simple <p> with an onclick handler would be easier. Having an element with an id makes it definitely better accessible via automation.

>+++ b/webapps/mozqa.com/manifest.webapp	Wed Apr 25 09:55:05 2012 -0700

>+  "developer":
>+  {
>+    "url": "http://mozqa.com",
>+    "name": "Mozilla QA"
>+  },
>+  "launch_path": "/data",
>+  "icons": {
>+    "128": "/data/webapps/mozqa.com/qalogo.png"
>+  },
>+  "name": "Mozilla QA WebRT Tester",
>+  "description": "An app for running web runtime test cases with native applications"

Would you mind to format it consistently in a json format as given in the example you sent me?

What about fields like version, screen size, required features, and others?

Looks good so far but we should figure out the remaining questions.
Attachment #618334 - Flags: review?(hskupin) → review-
Attachment #618334 - Attachment is obsolete: true
Attachment #618942 - Flags: review?(hskupin)
(In reply to Henrik Skupin (:whimboo) from comment #14)
> Comment on attachment 618334 [details] [diff] [review]
> Web App Support for Mozqa
> 
> >+++ b/webapps/mozqa.com/appinstall.html	Wed Apr 25 09:55:05 2012 -0700
> 
> >+    <input name="Install App" type="submit" value="Install Free App" onclick="installApp()">
> 
> I wonder if a simple <p> with an onclick handler would be easier. Having an
> element with an id makes it definitely better accessible via automation.
> 

Done.

> >+++ b/webapps/mozqa.com/manifest.webapp	Wed Apr 25 09:55:05 2012 -0700
> 
> >+  "developer":
> >+  {
> >+    "url": "http://mozqa.com",
> >+    "name": "Mozilla QA"
> >+  },
> >+  "launch_path": "/data",
> >+  "icons": {
> >+    "128": "/data/webapps/mozqa.com/qalogo.png"
> >+  },
> >+  "name": "Mozilla QA WebRT Tester",
> >+  "description": "An app for running web runtime test cases with native applications"
> 
> Would you mind to format it consistently in a json format as given in the
> example you sent me?

Done.

> 
> What about fields like version, screen size, required features, and others?

Version would be useful for the manifest to document well, the version of the manifest built so far. locales and default_locale I don't think is needed at this point for a 1st version, although it could be useful down the line if we wanted to do some localization testing of the same manifest. installed_allowed_from has been added, given that I think it's okay to be able to install this app from anywhere (I don't see a reason to restrict it). The rest of the feature (screen size, required_features, orientation, fullscreen) are unsupported right now for app manifests (the documentation is worded incorrectly, it should say "future" features coming down the line).

> 
> Looks good so far but we should figure out the remaining questions.
Comment on attachment 618942 [details] [diff] [review]
Web App Support for Mozqa

Looks good. There is still a nit in the JSON formatting but I will fix it with the JSON beautifier before the checkin-in.
Attachment #618942 - Flags: review?(hskupin) → review+
Landed as:
http://hg.mozilla.org/qa/litmus-data/rev/af74c72a9469

Please make sure that you set a commit message next time and make use of 'hg export tip'. I have updated it too.

It will be available on mozqa.com in the next 15 minutes.
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
(In reply to Henrik Skupin (:whimboo) from comment #18)
> Landed as:
> http://hg.mozilla.org/qa/litmus-data/rev/af74c72a9469
> 
> Please make sure that you set a commit message next time and make use of 'hg
> export tip'. I have updated it too.
> 
> It will be available on mozqa.com in the next 15 minutes.

Ack. The QA logo wasn't included in this checkin. Reopening...
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Other than the issue in comment 19, initial testing shows that app install works on both desktop firefox and fennec native.
So please provide an updated patch. The latest revision of your patch is missing this file. Haven't noticed that.
(In reply to Henrik Skupin (:whimboo) from comment #21)
> So please provide an updated patch. The latest revision of your patch is
> missing this file. Haven't noticed that.

Sorry about that. Dumb question - How do I create a hg diff for a binary png file? I'm getting "Binary file webapps/mozqa.com/qalogo.png has changed" in the diff file, which is not the image file needed in the diff.
You probably missed to do a 'hg add file'. If you don't work with Mercurial queues you will have to do it each time you apply a patch.
Status: REOPENED → ASSIGNED
Attached patch MozQA Image Diff (obsolete) — Splinter Review
Let's hope I did this right this time. Re-added it in a commit, did hg export --text tip > mozqa.diff to generate the diff.
Attachment #622304 - Flags: review?(hskupin)
Comment on attachment 622304 [details] [diff] [review]
MozQA Image Diff

No, it shouldn't be the text. Can I assumne that the icon attached to the bug is still the one you want? I can check it in if you want.
Attachment #622304 - Flags: review?(hskupin)
(In reply to Henrik Skupin (:whimboo) from comment #25)
> Comment on attachment 622304 [details] [diff] [review]
> MozQA Image Diff
> 
> No, it shouldn't be the text. Can I assumne that the icon attached to the
> bug is still the one you want? I can check it in if you want.

Yup, that's the one. I'll resolve my troublesome issue with getting the image diff outside of the scope of the bug then.
Oh, now I know why I was having a problem as you stated above (https://developer.mozilla.org/en/Mercurial_Queues). I need to use git diff format, right?
Attachment #622304 - Attachment is obsolete: true
Attached patch MozQA Diff (obsolete) — Splinter Review
I think I got it this time. Used git diff format, did hg export tip.
Attachment #622308 - Flags: review?(hskupin)
Logo has been added:
http://hg.mozilla.org/qa/litmus-data/rev/ce9004abb66f

(In reply to Jason Smith [:jsmith] from comment #27)
> Oh, now I know why I was having a problem as you stated above
> (https://developer.mozilla.org/en/Mercurial_Queues). I need to use git diff
> format, right?

You should yes. Then a 'hg export tip >' should work fine.
Status: ASSIGNED → RESOLVED
Closed: 12 years ago12 years ago
Resolution: --- → FIXED
Comment on attachment 622308 [details] [diff] [review]
MozQA Diff

># User jsmith@JSMITH-07547

I have already checked that file in. For the future please use a valid email address.
Attachment #622308 - Attachment is obsolete: true
Attachment #622308 - Flags: review?(hskupin)
Verified. The icon correctly shows up on apps.mozillalabs.com/appdir, mozqa.com, and when it is installed. Installation still works correctly.
Status: RESOLVED → VERIFIED
Product: Mozilla QA → Mozilla QA Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: