Return-Path: X-Original-To: apmail-cordova-commits-archive@www.apache.org Delivered-To: apmail-cordova-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 86808FEC9 for ; Fri, 22 Mar 2013 01:47:06 +0000 (UTC) Received: (qmail 6668 invoked by uid 500); 22 Mar 2013 01:47:06 -0000 Delivered-To: apmail-cordova-commits-archive@cordova.apache.org Received: (qmail 6633 invoked by uid 500); 22 Mar 2013 01:47:06 -0000 Mailing-List: contact commits-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: callback-dev@cordova.apache.org Delivered-To: mailing list commits@cordova.apache.org Received: (qmail 6614 invoked by uid 99); 22 Mar 2013 01:47:05 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 22 Mar 2013 01:47:05 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id AA81852D67; Fri, 22 Mar 2013 01:47:05 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: shazron@apache.org To: commits@cordova.apache.org Date: Fri, 22 Mar 2013 01:47:06 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [02/10] Added command line project creation. http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/42ebcc90/bin/templates/project/__TESTING__/__TESTING__-Info.plist ---------------------------------------------------------------------- diff --git a/bin/templates/project/__TESTING__/__TESTING__-Info.plist b/bin/templates/project/__TESTING__/__TESTING__-Info.plist new file mode 100644 index 0000000..b11653e --- /dev/null +++ b/bin/templates/project/__TESTING__/__TESTING__-Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + __TESTING__.icns + CFBundleIdentifier + --ID-- + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + NSHumanReadableCopyright + Apache License, Version 2.0 + NSMainNibFile + MainViewController + NSPrincipalClass + NSApplication + + http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/42ebcc90/bin/templates/project/__TESTING__/__TESTING__-Prefix.pch ---------------------------------------------------------------------- diff --git a/bin/templates/project/__TESTING__/__TESTING__-Prefix.pch b/bin/templates/project/__TESTING__/__TESTING__-Prefix.pch new file mode 100644 index 0000000..03d1fa2 --- /dev/null +++ b/bin/templates/project/__TESTING__/__TESTING__-Prefix.pch @@ -0,0 +1,25 @@ +/* + 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. + */ + +#ifdef __OBJC__ + +#import + + +#endif http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/42ebcc90/bin/templates/project/__TESTING__/config.xml ---------------------------------------------------------------------- diff --git a/bin/templates/project/__TESTING__/config.xml b/bin/templates/project/__TESTING__/config.xml new file mode 100644 index 0000000..685aeaf --- /dev/null +++ b/bin/templates/project/__TESTING__/config.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/42ebcc90/bin/templates/project/__TESTING__/main.m ---------------------------------------------------------------------- diff --git a/bin/templates/project/__TESTING__/main.m b/bin/templates/project/__TESTING__/main.m new file mode 100644 index 0000000..736a22e --- /dev/null +++ b/bin/templates/project/__TESTING__/main.m @@ -0,0 +1,25 @@ +/* + 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. + */ + +#import + +int main(int argc, char *argv[]) +{ + return NSApplicationMain(argc, (const char **)argv); +} http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/42ebcc90/bin/templates/project/www/css/index.css ---------------------------------------------------------------------- diff --git a/bin/templates/project/www/css/index.css b/bin/templates/project/www/css/index.css new file mode 100644 index 0000000..51daa79 --- /dev/null +++ b/bin/templates/project/www/css/index.css @@ -0,0 +1,115 @@ +/* + * 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. + */ +* { + -webkit-tap-highlight-color: rgba(0,0,0,0); /* make transparent link selection, adjust last value opacity 0 to 1.0 */ +} + +body { + -webkit-touch-callout: none; /* prevent callout to copy image, etc when tap to hold */ + -webkit-text-size-adjust: none; /* prevent webkit from resizing text to fit */ + -webkit-user-select: none; /* prevent copy paste, to allow, change 'none' to 'text' */ + background-color:#E4E4E4; + background-image:linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%); + background-image:-webkit-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%); + background-image:-ms-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%); + background-image:-webkit-gradient( + linear, + left top, + left bottom, + color-stop(0, #A7A7A7), + color-stop(0.51, #E4E4E4) + ); + background-attachment:fixed; + font-family:'HelveticaNeue-Light', 'HelveticaNeue', Helvetica, Arial, sans-serif; + font-size:12px; + height:100%; + margin:0px; + padding:0px; + text-transform:uppercase; + width:100%; +} + +/* Portrait layout (default) */ +.app { + background:url(../img/logo.png) no-repeat center top; /* 170px x 200px */ + position:absolute; /* position in the center of the screen */ + left:50%; + top:50%; + height:50px; /* text area height */ + width:225px; /* text area width */ + text-align:center; + padding:180px 0px 0px 0px; /* image height is 200px (bottom 20px are overlapped with text) */ + margin:-115px 0px 0px -112px; /* offset vertical: half of image height and text area height */ + /* offset horizontal: half of text area width */ +} + +/* Landscape layout (with min-width) */ +@media screen and (min-aspect-ratio: 1/1) and (min-width:400px) { + .app { + background-position:left center; + padding:75px 0px 75px 170px; /* padding-top + padding-bottom + text area = image height */ + margin:-90px 0px 0px -198px; /* offset vertical: half of image height */ + /* offset horizontal: half of image width and text area width */ + } +} + +h1 { + font-size:24px; + font-weight:normal; + margin:0px; + overflow:visible; + padding:0px; + text-align:center; +} + +.event { + border-radius:4px; + -webkit-border-radius:4px; + color:#FFFFFF; + font-size:12px; + margin:0px 30px; + padding:2px 0px; +} + +.event.listening { + background-color:#333333; + display:block; +} + +.event.received { + background-color:#4B946A; + display:none; +} + +@keyframes fade { + from { opacity: 1.0; } + 50% { opacity: 0.4; } + to { opacity: 1.0; } +} + +@-webkit-keyframes fade { + from { opacity: 1.0; } + 50% { opacity: 0.4; } + to { opacity: 1.0; } +} + +.blink { + animation:fade 3000ms infinite; + -webkit-animation:fade 3000ms infinite; +} http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/42ebcc90/bin/templates/project/www/img/logo.png ---------------------------------------------------------------------- diff --git a/bin/templates/project/www/img/logo.png b/bin/templates/project/www/img/logo.png new file mode 100644 index 0000000..9519e7d Binary files /dev/null and b/bin/templates/project/www/img/logo.png differ http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/42ebcc90/bin/templates/project/www/index.html ---------------------------------------------------------------------- diff --git a/bin/templates/project/www/index.html b/bin/templates/project/www/index.html new file mode 100644 index 0000000..48d3e36 --- /dev/null +++ b/bin/templates/project/www/index.html @@ -0,0 +1,42 @@ + + + + + + + + + Hello World + + +
+

Apache Cordova

+ +
+ + + + + http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/42ebcc90/bin/templates/project/www/js/index.js ---------------------------------------------------------------------- diff --git a/bin/templates/project/www/js/index.js b/bin/templates/project/www/js/index.js new file mode 100644 index 0000000..31d9064 --- /dev/null +++ b/bin/templates/project/www/js/index.js @@ -0,0 +1,49 @@ +/* + * 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. + */ +var app = { + // Application Constructor + initialize: function() { + this.bindEvents(); + }, + // Bind Event Listeners + // + // Bind any events that are required on startup. Common events are: + // 'load', 'deviceready', 'offline', and 'online'. + bindEvents: function() { + document.addEventListener('deviceready', this.onDeviceReady, false); + }, + // deviceready Event Handler + // + // The scope of 'this' is the event. In order to call the 'receivedEvent' + // function, we must explicity call 'app.receivedEvent(...);' + onDeviceReady: function() { + app.receivedEvent('deviceready'); + }, + // Update DOM on a Received Event + receivedEvent: function(id) { + var parentElement = document.getElementById(id); + var listeningElement = parentElement.querySelector('.listening'); + var receivedElement = parentElement.querySelector('.received'); + + listeningElement.setAttribute('style', 'display:none;'); + receivedElement.setAttribute('style', 'display:block;'); + + console.log('Received Event: ' + id); + } +}; http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/42ebcc90/bin/templates/project/www/spec.html ---------------------------------------------------------------------- diff --git a/bin/templates/project/www/spec.html b/bin/templates/project/www/spec.html new file mode 100644 index 0000000..71f00de --- /dev/null +++ b/bin/templates/project/www/spec.html @@ -0,0 +1,68 @@ + + + + + Jasmine Spec Runner + + + + + + + + + + + + + + + + + + + + http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/42ebcc90/bin/templates/project/www/spec/helper.js ---------------------------------------------------------------------- diff --git a/bin/templates/project/www/spec/helper.js b/bin/templates/project/www/spec/helper.js new file mode 100644 index 0000000..929f776 --- /dev/null +++ b/bin/templates/project/www/spec/helper.js @@ -0,0 +1,33 @@ +/* + * 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. + */ +afterEach(function() { + document.getElementById('stage').innerHTML = ''; +}); + +var helper = { + trigger: function(obj, name) { + var e = document.createEvent('Event'); + e.initEvent(name, true, true); + obj.dispatchEvent(e); + }, + getComputedStyle: function(querySelector, property) { + var element = document.querySelector(querySelector); + return window.getComputedStyle(element).getPropertyValue(property); + } +}; http://git-wip-us.apache.org/repos/asf/cordova-osx/blob/42ebcc90/bin/templates/project/www/spec/index.js ---------------------------------------------------------------------- diff --git a/bin/templates/project/www/spec/index.js b/bin/templates/project/www/spec/index.js new file mode 100644 index 0000000..20f8be5 --- /dev/null +++ b/bin/templates/project/www/spec/index.js @@ -0,0 +1,67 @@ +/* + * 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. + */ +describe('app', function() { + describe('initialize', function() { + it('should bind deviceready', function() { + runs(function() { + spyOn(app, 'onDeviceReady'); + app.initialize(); + helper.trigger(window.document, 'deviceready'); + }); + + waitsFor(function() { + return (app.onDeviceReady.calls.length > 0); + }, 'onDeviceReady should be called once', 500); + + runs(function() { + expect(app.onDeviceReady).toHaveBeenCalled(); + }); + }); + }); + + describe('onDeviceReady', function() { + it('should report that it fired', function() { + spyOn(app, 'receivedEvent'); + app.onDeviceReady(); + expect(app.receivedEvent).toHaveBeenCalledWith('deviceready'); + }); + }); + + describe('receivedEvent', function() { + beforeEach(function() { + var el = document.getElementById('stage'); + el.innerHTML = ['
', + '

Listening

', + '

Received

', + '
'].join('\n'); + }); + + it('should hide the listening element', function() { + app.receivedEvent('deviceready'); + var displayStyle = helper.getComputedStyle('#deviceready .listening', 'display'); + expect(displayStyle).toEqual('none'); + }); + + it('should show the received element', function() { + app.receivedEvent('deviceready'); + var displayStyle = helper.getComputedStyle('#deviceready .received', 'display'); + expect(displayStyle).toEqual('block'); + }); + }); +});