Creation of Test Plan and FYP Report

This commit is contained in:
Alexander Davis
2017-04-08 00:50:00 +01:00
parent 6953077108
commit 933a4acff6
316 changed files with 39301 additions and 13662 deletions

View File

@@ -1,35 +0,0 @@
//
// AppDelegate.swift
// SwiftForms
//
// Created by Miguel Angel Ortuno on 20/08/14.
// Copyright (c) 2014 Miguel Angel Ortuño. All rights reserved.
//
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
private func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : Any]?) -> Bool {
return true
}
func applicationWillResignActive(_ application: UIApplication) {
}
func applicationDidEnterBackground(_ application: UIApplication) {
}
func applicationWillEnterForeground(_ application: UIApplication) {
}
func applicationDidBecomeActive(_ application: UIApplication) {
}
func applicationWillTerminate(_ application: UIApplication) {
}
}

View File

@@ -1,47 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="2fJ-Vj-Fx4">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/>
</dependencies>
<scenes>
<!--Root View Controller-->
<scene sceneID="prn-mK-S9o">
<objects>
<tableViewController id="cOw-JX-PpI" customClass="ExampleFormViewController" customModule="SwiftFormsApplication" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="Dpr-KM-eKs">
<rect key="frame" x="0.0" y="0.0" width="320" height="518"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
<connections>
<outlet property="dataSource" destination="cOw-JX-PpI" id="zuU-br-WUC"/>
<outlet property="delegate" destination="cOw-JX-PpI" id="2Oh-6L-e8h"/>
</connections>
</tableView>
<navigationItem key="navigationItem" title="Root View Controller" id="W98-Fb-phH"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<size key="freeformSize" width="320" height="518"/>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="ndw-47-Ukh" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-166" y="423.75"/>
</scene>
<!--Navigation Controller-->
<scene sceneID="4el-7P-abp">
<objects>
<navigationController id="2fJ-Vj-Fx4" sceneMemberID="viewController">
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<size key="freeformSize" width="320" height="518"/>
<navigationBar key="navigationBar" contentMode="scaleToFill" id="l3z-Dv-0Yo">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="cOw-JX-PpI" kind="relationship" relationship="rootViewController" id="nL3-AH-WsZ"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="k9y-Jx-GyC" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-816" y="424"/>
</scene>
</scenes>
</document>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 MiB

View File

@@ -1,211 +0,0 @@
//
// ExampleFormViewController.swift
// SwiftForms
//®
// Created by Miguel Angel Ortuno on 20/08/14.
// Copyright (c) 2014 Miguel Angel Ortuño. All rights reserved.
//
import UIKit
import SwiftForms
class ExampleFormViewController: FormViewController {
struct Static {
static let nameTag = "name"
static let passwordTag = "password"
static let lastNameTag = "lastName"
static let jobTag = "job"
static let emailTag = "email"
static let URLTag = "url"
static let phoneTag = "phone"
static let enabled = "enabled"
static let check = "check"
static let segmented = "segmented"
static let picker = "picker"
static let birthday = "birthday"
static let categories = "categories"
static let button = "button"
static let stepper = "stepper"
static let slider = "slider"
static let textView = "textview"
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.loadForm()
}
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Submit", style: .plain, target: self, action: #selector(ExampleFormViewController.submit(_:)))
}
// MARK: Actions
func submit(_: UIBarButtonItem!) {
let message = self.form.formValues().description
let alertController = UIAlertController(title: "Form output", message: message, preferredStyle: .alert)
let cancel = UIAlertAction(title: "OK", style: .cancel) { (action) in
}
alertController.addAction(cancel)
self.present(alertController, animated: true, completion: nil)
}
// MARK: Private interface
fileprivate func loadForm() {
let form = FormDescriptor(title: "Example Form")
let section1 = FormSectionDescriptor(headerTitle: nil, footerTitle: nil)
var row = FormRowDescriptor(tag: Static.emailTag, type: .email, title: "Email")
row.configuration.cell.appearance = ["textField.placeholder" : "john@gmail.com" as AnyObject, "textField.textAlignment" : NSTextAlignment.right.rawValue as AnyObject]
section1.rows.append(row)
row = FormRowDescriptor(tag: Static.passwordTag, type: .password, title: "Password")
row.configuration.cell.appearance = ["textField.placeholder" : "Enter password" as AnyObject, "textField.textAlignment" : NSTextAlignment.right.rawValue as AnyObject]
section1.rows.append(row)
let section2 = FormSectionDescriptor(headerTitle: nil, footerTitle: nil)
row = FormRowDescriptor(tag: Static.nameTag, type: .name, title: "First Name")
row.configuration.cell.appearance = ["textField.placeholder" : "e.g. Miguel Ángel" as AnyObject, "textField.textAlignment" : NSTextAlignment.right.rawValue as AnyObject]
section2.rows.append(row)
row = FormRowDescriptor(tag: Static.lastNameTag, type: .name, title: "Last Name")
row.configuration.cell.appearance = ["textField.placeholder" : "e.g. Ortuño" as AnyObject, "textField.textAlignment" : NSTextAlignment.right.rawValue as AnyObject]
section2.rows.append(row)
row = FormRowDescriptor(tag: Static.jobTag, type: .text, title: "Job")
row.configuration.cell.appearance = ["textField.placeholder" : "e.g. Entrepreneur" as AnyObject, "textField.textAlignment" : NSTextAlignment.right.rawValue as AnyObject]
section2.rows.append(row)
let section3 = FormSectionDescriptor(headerTitle: nil, footerTitle: nil)
row = FormRowDescriptor(tag: Static.URLTag, type: .url, title: "URL")
row.configuration.cell.appearance = ["textField.placeholder" : "e.g. gethooksapp.com" as AnyObject, "textField.textAlignment" : NSTextAlignment.right.rawValue as AnyObject]
section3.rows.append(row)
row = FormRowDescriptor(tag: Static.phoneTag, type: .phone, title: "Phone")
row.configuration.cell.appearance = ["textField.placeholder" : "e.g. 0034666777999" as AnyObject, "textField.textAlignment" : NSTextAlignment.right.rawValue as AnyObject]
section3.rows.append(row)
let section4 = FormSectionDescriptor(headerTitle: "An example header title", footerTitle: "An example footer title")
row = FormRowDescriptor(tag: Static.enabled, type: .booleanSwitch, title: "Enable")
section4.rows.append(row)
row = FormRowDescriptor(tag: Static.check, type: .booleanCheck, title: "Doable")
section4.rows.append(row)
row = FormRowDescriptor(tag: Static.segmented, type: .segmentedControl, title: "Priority")
row.configuration.selection.options = ([0, 1, 2, 3] as [Int]) as [AnyObject]
row.configuration.selection.optionTitleClosure = { value in
guard let option = value as? Int else { return "" }
switch option {
case 0:
return "None"
case 1:
return "!"
case 2:
return "!!"
case 3:
return "!!!"
default:
return ""
}
}
row.configuration.cell.appearance = ["titleLabel.font" : UIFont.boldSystemFont(ofSize: 30.0), "segmentedControl.tintColor" : UIColor.red]
section4.rows.append(row)
let section5 = FormSectionDescriptor(headerTitle: nil, footerTitle: nil)
row = FormRowDescriptor(tag: Static.picker, type: .picker, title: "Gender")
row.configuration.cell.showsInputToolbar = true
row.configuration.selection.options = (["F", "M", "U"] as [String]) as [AnyObject]
row.configuration.selection.optionTitleClosure = { value in
guard let option = value as? String else { return "" }
switch option {
case "F":
return "Female"
case "M":
return "Male"
case "U":
return "I'd rather not to say"
default:
return ""
}
}
row.value = "M" as AnyObject
section5.rows.append(row)
row = FormRowDescriptor(tag: Static.birthday, type: .date, title: "Birthday")
row.configuration.cell.showsInputToolbar = true
section5.rows.append(row)
row = FormRowDescriptor(tag: Static.categories, type: .multipleSelector, title: "Categories")
row.configuration.selection.options = ([0, 1, 2, 3, 4] as [Int]) as [AnyObject]
row.configuration.selection.allowsMultipleSelection = true
row.configuration.selection.optionTitleClosure = { value in
guard let option = value as? Int else { return "" }
switch option {
case 0:
return "Restaurant"
case 1:
return "Pub"
case 2:
return "Shop"
case 3:
return "Hotel"
case 4:
return "Camping"
default:
return ""
}
}
section5.rows.append(row)
let section6 = FormSectionDescriptor(headerTitle: "Stepper & Slider", footerTitle: nil)
row = FormRowDescriptor(tag: Static.stepper, type: .stepper, title: "Step count")
row.configuration.stepper.maximumValue = 200.0
row.configuration.stepper.minimumValue = 20.0
row.configuration.stepper.steps = 2.0
section6.rows.append(row)
row = FormRowDescriptor(tag: Static.slider, type: .slider, title: "Slider")
row.configuration.stepper.maximumValue = 200.0
row.configuration.stepper.minimumValue = 20.0
row.configuration.stepper.steps = 2.0
row.value = 0.5 as AnyObject
section6.rows.append(row)
let section7 = FormSectionDescriptor(headerTitle: "Multiline TextView", footerTitle: nil)
row = FormRowDescriptor(tag: Static.textView, type: .multilineText, title: "Notes")
section7.rows.append(row)
let section8 = FormSectionDescriptor(headerTitle: nil, footerTitle: nil)
row = FormRowDescriptor(tag: Static.button, type: .button, title: "Dismiss")
row.configuration.button.didSelectClosure = { _ in
self.view.endEditing(true)
}
section8.rows.append(row)
form.sections = [section1, section2, section3, section4, section5, section6, section7, section8]
self.form = form
}
}

View File

@@ -1,68 +0,0 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -1,143 +0,0 @@
{
"images" : [
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "8.0",
"subtype" : "736h",
"scale" : "3x"
},
{
"orientation" : "landscape",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "8.0",
"subtype" : "736h",
"scale" : "3x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "8.0",
"subtype" : "667h",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"subtype" : "retina4",
"filename" : "iphone5_splash.png",
"minimum-system-version" : "7.0",
"orientation" : "portrait",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"subtype" : "retina4",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "to-status-bar",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "to-status-bar",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "to-status-bar",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "to-status-bar",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -1,38 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>Launch</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
</dict>
</plist>

View File

@@ -1,43 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="9SR-7b-Iwg">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/>
</dependencies>
<scenes>
<!--Navigation Controller-->
<scene sceneID="zNr-CX-2hl">
<objects>
<navigationController id="9SR-7b-Iwg" sceneMemberID="viewController">
<navigationBar key="navigationBar" contentMode="scaleToFill" id="boM-fp-avT">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
</navigationBar>
<connections>
<segue destination="zU2-zy-5lE" kind="relationship" relationship="rootViewController" id="RaG-Zs-crm"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="rIS-OV-1jL" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-664" y="297"/>
</scene>
<!--View Controller-->
<scene sceneID="9pp-lP-Cyp">
<objects>
<viewController id="zU2-zy-5lE" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="kba-MB-gng"/>
<viewControllerLayoutGuide type="bottom" id="cvL-oJ-V4X"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="2CP-3f-vjZ">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</view>
<navigationItem key="navigationItem" id="49I-cM-xVU"/>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Ywx-qZ-bIj" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="358" y="297"/>
</scene>
</scenes>
</document>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

View File

@@ -1,23 +0,0 @@
//
// ViewController.swift
// SwiftFormsApplication
//
// Created by Miguel Angel Ortuno Ortuno on 14/5/15.
// Copyright (c) 2015 Miguel Angel Ortuno Ortuno. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}