diff --git a/tests/xharness/Hardware/TCCDatabase.cs b/tests/xharness/Hardware/TCCDatabase.cs index ca39b22ee49d..871e7805696f 100644 --- a/tests/xharness/Hardware/TCCDatabase.cs +++ b/tests/xharness/Hardware/TCCDatabase.cs @@ -91,17 +91,17 @@ public async Task AgreeToPromptsAsync (string simRuntime, string TCCDb, ILog log switch (GetTCCFormat (simRuntime)) { case 1: // CREATE TABLE access (service TEXT NOT NULL, client TEXT NOT NULL, client_type INTEGER NOT NULL, allowed INTEGER NOT NULL, prompt_count INTEGER NOT NULL, csreq BLOB, CONSTRAINT key PRIMARY KEY (service, client, client_type)); - sql.AppendFormat ("DELETE FROM access WHERE service = '{0}' AND client = '{1}';\n", service, bundle_identifier); - sql.AppendFormat ("INSERT INTO access VALUES('{0}','{1}',0,1,0,NULL);\n", service, bundle_identifier); + sql.AppendFormat ("DELETE FROM access WHERE service = '{0}' AND client = '{1}';\n", service, bundle_id); + sql.AppendFormat ("INSERT INTO access VALUES('{0}','{1}',0,1,0,NULL);\n", service, bundle_id); break; case 2: // CREATE TABLE access (service TEXT NOT NULL, client TEXT NOT NULL, client_type INTEGER NOT NULL, allowed INTEGER NOT NULL, prompt_count INTEGER NOT NULL, csreq BLOB, policy_id INTEGER, PRIMARY KEY (service, client, client_type), FOREIGN KEY (policy_id) REFERENCES policies(id) ON DELETE CASCADE ON UPDATE CASCADE); - sql.AppendFormat ("DELETE FROM access WHERE service = '{0}' AND client = '{1}';\n", service, bundle_identifier); - sql.AppendFormat ("INSERT INTO access VALUES('{0}','{1}',0,1,0,NULL,NULL);\n", service, bundle_identifier); + sql.AppendFormat ("DELETE FROM access WHERE service = '{0}' AND client = '{1}';\n", service, bundle_id); + sql.AppendFormat ("INSERT INTO access VALUES('{0}','{1}',0,1,0,NULL,NULL);\n", service, bundle_id); break; case 3: // Xcode 10+ // CREATE TABLE access ( service TEXT NOT NULL, client TEXT NOT NULL, client_type INTEGER NOT NULL, allowed INTEGER NOT NULL, prompt_count INTEGER NOT NULL, csreq BLOB, policy_id INTEGER, indirect_object_identifier_type INTEGER, indirect_object_identifier TEXT, indirect_object_code_identity BLOB, flags INTEGER, last_modified INTEGER NOT NULL DEFAULT (CAST(strftime('%s','now') AS INTEGER)), PRIMARY KEY (service, client, client_type, indirect_object_identifier), FOREIGN KEY (policy_id) REFERENCES policies(id) ON DELETE CASCADE ON UPDATE CASCADE) - sql.AppendFormat ("INSERT OR REPLACE INTO access VALUES('{0}','{1}',0,1,0,NULL,NULL,NULL,'UNUSED',NULL,NULL,{2});\n", service, bundle_identifier, DateTimeOffset.Now.ToUnixTimeSeconds ()); + sql.AppendFormat ("INSERT OR REPLACE INTO access VALUES('{0}','{1}',0,1,0,NULL,NULL,NULL,'UNUSED',NULL,NULL,{2});\n", service, bundle_id, DateTimeOffset.Now.ToUnixTimeSeconds ()); break; default: throw new NotImplementedException (); diff --git a/tests/xharness/Xharness.Tests/Hardware/Tests/TCCDatabaseTests.cs b/tests/xharness/Xharness.Tests/Hardware/Tests/TCCDatabaseTests.cs index 1bc9b59603ab..8a1ba9062d30 100644 --- a/tests/xharness/Xharness.Tests/Hardware/Tests/TCCDatabaseTests.cs +++ b/tests/xharness/Xharness.Tests/Hardware/Tests/TCCDatabaseTests.cs @@ -101,27 +101,28 @@ public async Task AgreeToPropmtsAsyncSuccessTest (string runtime, int dbVersion) "kTCCServiceUbiquity", "kTCCServiceWillow" }; - var expectedArgs = new StringBuilder (); + var expectedArgs = new StringBuilder ("\n"); // assert the sql used depending on the version - switch (dbVersion) { - case 1: - foreach (var s in services) { - expectedArgs.AppendFormat ("INSERT INTO access VALUES('{0}','{1}',0,1,0,NULL);", s, bundleIdentifier); - expectedArgs.AppendFormat ("INSERT INTO access VALUES('{0}','{1}',0,1,0,NULL);", s, bundleIdentifier + ".watchkitapp"); + foreach (var id in new [] { bundleIdentifier, bundleIdentifier + ".watchkitapp" }) { + switch (dbVersion) { + case 1: + foreach (var s in services) { + expectedArgs.AppendFormat ("DELETE FROM access WHERE service = '{0}' AND client = '{1}';\n", s, id); + expectedArgs.AppendFormat ("INSERT INTO access VALUES('{0}','{1}',0,1,0,NULL);\n", s, id); + } + break; + case 2: + foreach (var s in services) { + expectedArgs.AppendFormat ("DELETE FROM access WHERE service = '{0}' AND client = '{1}';\n", s, id); + expectedArgs.AppendFormat ("INSERT INTO access VALUES('{0}','{1}',0,1,0,NULL,NULL);\n", s, id); + } + break; + case 3: + foreach (var s in services) { + expectedArgs.AppendFormat ("INSERT OR REPLACE INTO access VALUES('{0}','{1}',0,1,0,NULL,NULL,NULL,'UNUSED',NULL,NULL,{2});\n", s, id, DateTimeOffset.Now.ToUnixTimeSeconds ()); + } + break; } - break; - case 2: - foreach (var s in services) { - expectedArgs.AppendFormat ("INSERT INTO access VALUES('{0}','{1}',0,1,0,NULL,NULL);", s, bundleIdentifier); - expectedArgs.AppendFormat ("INSERT INTO access VALUES('{0}','{1}',0,1,0,NULL,NULL);", s, bundleIdentifier + ".watchkitapp"); - } - break; - case 3: - foreach (var s in services) { - expectedArgs.AppendFormat ("INSERT OR REPLACE INTO access VALUES('{0}','{1}',0,1,0,NULL,NULL,NULL,'UNUSED',NULL,NULL,{2});", s, bundleIdentifier, DateTimeOffset.Now.ToUnixTimeSeconds ()); - expectedArgs.AppendFormat ("INSERT OR REPLACE INTO access VALUES('{0}','{1}',0,1,0,NULL,NULL,NULL,'UNUSED',NULL,NULL,{2});", s, bundleIdentifier + ".watchkitapp", DateTimeOffset.Now.ToUnixTimeSeconds ()); - } - break; } string processName = null; IList args = new List ();