{ "id": "104847", "key": "ALOY-377", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "11113", "key": "ALOY", "name": "Alloy", "projectCategory": { "id": "10400", "description": "Tools for developing applications", "name": "Tooling" } }, "fixVersions": [ { "id": "14633", "description": "Alloy 0.3.3", "name": "Alloy 0.3.3", "archived": false, "released": true, "releaseDate": "2012-11-30" }, { "id": "14772", "description": "2012 Sprint 24", "name": "2012 Sprint 24", "archived": true, "released": true, "releaseDate": "2012-12-03" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-11-28T20:07:53.000+0000", "created": "2012-11-12T19:38:32.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [], "versions": [ { "id": "14632", "description": "Alloy 0.3.2", "name": "Alloy 0.3.2", "archived": false, "released": true, "releaseDate": "2012-11-16" } ], "issuelinks": [ { "id": "22760", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "outwardIssue": { "id": "104500", "key": "ALOY-369", "fields": { "summary": "Basic smoke test with Soasta and Alloy", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } }, { "id": "23213", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "inwardIssue": { "id": "104453", "key": "ALOY-367", "fields": { "summary": "Alloy should work with Soasta Touchtest", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": null, "updated": "2018-03-07T22:25:40.000+0000", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "12332", "name": "Titanium SDK", "description": "Any integration or issues with the TiSDK" } ], "description": "When I was testing if Soasta Touch Test would work with an alloy project, I discovered that by default it won't because when you touch enable the app it looks to add code to app.js which won't be there.\r\n\r\nSteps to reproduce:\r\n*You will need access to Touch Test to reproduce this issue*\r\n\r\nBut generally the process is\r\n1. Create a new default Titanium mobile project\r\n2. Allot enable it\r\n3. Follow the instructions contained here for touch test enabling a Titanium app: http://cdn.soasta.com/productresource/download/SOASTA_TouchTest_Appcelerator_iOS_Tutorial.pdf\r\n\r\nActual result:\r\nYou will notice in the docs that touch test enabling an app adds code to app.js. This is why by default the app won't be touch test enabled. However, if you copy and paste the following code in index.js the app will then be touch test enabled\r\n{code}\r\nif (Ti.Platform.osname === 'iphone' || Ti.Platform.osname === 'ipad')\r\n{\r\n var touchTestModule = require(\"com.soasta.touchtest\");\r\n var cloudTestURL = Ti.App.getArguments().url;\r\n if (cloudTestURL != null)\r\n {\r\n // The URL will be null if we don't launch through TouchTest.\r\n touchTestModule.initTouchTest(cloudTestURL);\r\n }\r\n\r\n Ti.App.addEventListener('resumed',function(e)\r\n {\r\n // Hook the resumed from background\r\n var cloudTestURL = Ti.App.getArguments().url;\r\n if (cloudTestURL != null)\r\n {\r\n touchTestModule.initTouchTest(cloudTestURL);\r\n }\r\n });\r\n }\r\n{code}\r\n\r\nExpected result:\r\nWe probably need to work with Soasta to detect whether an app has an app.js or an index.js to put the code into.", "attachment": [], "flagged": false, "summary": "Touch Test - An Alloy enabled app won't work by default because there isn't an app.js by default", "creator": { "name": "mpettiford", "key": "mpettiford", "displayName": "Michael Pettiford", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "mpettiford", "key": "mpettiford", "displayName": "Michael Pettiford", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Ti Studio build 3.0.0.201210291448\r\nTi Mobile SDK 2.1.4.v20121109124659\r\nOSX Mountain Lion", "comment": { "comments": [ { "id": "227141", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "If we can get the Soasta process to run AFTER the alloy compile, then it should work fine. Also, the changes would probably be better suited to be made in the *app/alloy.js* file instead of the *app/controllers/index.js*. Code in the *app/alloy.js* will be put in the generated app.js and will be executed before any view code, including the index itself, is rendered.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-13T17:07:46.000+0000", "updated": "2012-11-13T17:07:46.000+0000" }, { "id": "227142", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I will attempt to contact the people working with/on Soasta to see if we can get the above order-of-operations changed so that no code needs to change on either end to work with alloy.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-13T17:09:10.000+0000", "updated": "2012-11-13T17:09:10.000+0000" }, { "id": "227367", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Michael has reached out to the Soasta developers. They are actively addressing this issue, I believe opting to make changes to the *app/alloy.js* in the case of an Alloy app. Additional testing will done when their changes are made to confirm that it works with Alloy. ", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-14T19:47:15.000+0000", "updated": "2012-11-14T19:47:15.000+0000" }, { "id": "228878", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This has been resolved by injecting Soasta's necessary code into the index.js. Any further improvements on this process will be documented in a new ticket.", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-11-28T20:07:53.000+0000", "updated": "2012-11-28T20:07:53.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }